From 9d7d4b0ec2a0756c288a6f35d7b6423d2a230716 Mon Sep 17 00:00:00 2001 From: peusterm Date: Wed, 23 Mar 2016 19:56:44 +0100 Subject: [PATCH] Made fake GK compatible with latest VNFD format. --- src/emuvim/api/sonata/dummygatekeeper.py | 33 ++++++++---------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/src/emuvim/api/sonata/dummygatekeeper.py b/src/emuvim/api/sonata/dummygatekeeper.py index eda2b96..0c02cab 100644 --- a/src/emuvim/api/sonata/dummygatekeeper.py +++ b/src/emuvim/api/sonata/dummygatekeeper.py @@ -125,7 +125,7 @@ class Service(object): # iterate over all deployment units within each VNFDs for u in vnfd.get("virtual_deployment_units"): # 1. get the name of the docker image to start and the assigned DC - docker_name = u.get("vm_image") + docker_name = vnfd.get("vnf_name") target_dc = vnfd.get("dc") # 2. perform some checks to ensure we can start the container assert(docker_name is not None) @@ -183,17 +183,17 @@ class Service(object): def _load_docker_files(self): """ - Get all paths to Dockerfiles from MANIFEST.MF and store them in dict. + Get all paths to Dockerfiles from VNFDs and store them in dict. :return: """ - if "package_content" in self.manifest: - for df in self.manifest.get("package_content"): - if df.get("content-type") == "application/sonata.docker_files": + for k, v in self.vnfds.iteritems(): + for vu in v.get("virtual_deployment_units"): + if vu.get("vm_image_format") == "docker": + vm_image = vu.get("vm_image") docker_path = os.path.join( self.package_content_path, - make_relative_path(df.get("name"))) - # FIXME: Mapping to docker image names is hardcoded because of the missing mapping in the example package - self.local_docker_files[helper_map_docker_name(df.get("name"))] = docker_path + make_relative_path(vm_image)) + self.local_docker_files[k] = docker_path LOG.debug("Found Dockerfile: %r" % docker_path) def _build_images_from_dockerfiles(self): @@ -367,24 +367,13 @@ def load_yaml(path): def make_relative_path(path): + if path.startswith("file://"): + path = path.replace("file://", "", 1) if path.startswith("/"): - return path.replace("/", "", 1) + path = path.replace("/", "", 1) return path -def helper_map_docker_name(name): - """ - Quick hack to fix missing dependency in example package. - """ - # FIXME remove this when package description is fixed - mapping = { - "/docker_files/iperf/Dockerfile": "iperf_docker", - "/docker_files/firewall/Dockerfile": "fw_docker", - "/docker_files/tcpdump/Dockerfile": "tcpdump_docker" - } - return mapping.get(name) - - if __name__ == '__main__': """ Lets allow to run the API in standalone mode. -- 2.17.1