Merge pull request #149 from stevenvanrossem/master
[osm/vim-emu.git] / src / emuvim / api / sonata / dummygatekeeper.py
index 715432e..bea0a01 100755 (executable)
@@ -225,7 +225,18 @@ class Service(object):
             # 3. do the dc.startCompute(name="foobar") call to run the container
             # TODO consider flavors, and other annotations
             intfs = vnfd.get("connection_points")
-            self.vnf_name2docker_name[vnf_name] = GK.get_next_vnf_name()
+            # mgmt connection points can be skipped, this is considered to be the connection the default docker0 bridge
+            intfs = [intf for intf in intfs if 'mgmt' not in intf['id']]
+            
+            # use the vnf_id in the nsd as docker name
+            # so deployed containers can be easily mapped back to the nsd
+            vnf_name2id = defaultdict(lambda: "NotExistingNode",
+                                          reduce(lambda x, y: dict(x, **y),
+                                                 map(lambda d: {d["vnf_name"]: d["vnf_id"]},
+                                                     self.nsd["network_functions"])))
+            self.vnf_name2docker_name[vnf_name] = vnf_name2id[vnf_name]
+            # self.vnf_name2docker_name[vnf_name] = GK.get_next_vnf_name()
+
             LOG.info("Starting %r as %r in DC %r" % (vnf_name, self.vnf_name2docker_name[vnf_name], vnfd.get("dc")))
             LOG.debug("Interfaces for %r: %r" % (vnf_name, intfs))
             vnfi = target_dc.startCompute(self.vnf_name2docker_name[vnf_name], network=intfs, image=docker_name, flavor_name="small")
@@ -462,6 +473,7 @@ class Packages(fr.Resource):
         Return a list of UUID's of uploaded service packages.
         :return: dict/list
         """
+        LOG.info("GET /packages")
         return {"service_uuid_list": list(GK.services.iterkeys())}
 
 
@@ -493,7 +505,8 @@ class Instantiations(fr.Resource):
         Returns a list of UUIDs containing all running services.
         :return: dict / list
         """
-        return {"service_instance_list": [
+        LOG.info("GET /instantiations")
+        return {"service_instantiations_list": [
             list(s.instances.iterkeys()) for s in GK.services.itervalues()]}