Bug 733 fixed
[osm/N2VC.git] / n2vc / vnf.py
index 11ce3c8..5a22952 100644 (file)
@@ -287,9 +287,10 @@ class N2VC:
 
         vdu:
             ...
-            relation:
-            -   provides: dataVM:db
-                requires: mgmtVM:app
+            vca-relations:
+                relation:
+                -   provides: dataVM:db
+                    requires: mgmtVM:app
 
         This tells N2VC that the charm referred to by the dataVM vdu offers a relation named 'db', and the mgmtVM vdu has an 'app' endpoint that should be connected to a database.
 
@@ -340,8 +341,8 @@ class N2VC:
         for cfg in configs:
             if 'juju' in cfg:
                 juju = cfg['juju']
-                if 'relation' in juju:
-                    for rel in juju['relation']:
+                if 'vca-relations' in juju and 'relation' in juju['vca-relations']:
+                    for rel in juju['vca-relations']['relation']:
                         try:
 
                             # get the application name for the provides
@@ -503,10 +504,19 @@ class N2VC:
             # Where to deploy the charm to.
             to=to,
         )
-
-        # Map the vdu id<->app name,
-        #
-        await self.Relate(model_name, vnfd)
+        #############################
+        # Map the vdu id<->app name #
+        #############################
+        try:
+            await self.Relate(model_name, vnfd)
+        except KeyError as ex:
+            # We don't currently support relations between NS and VNF/VDU charms
+            self.log.warn("[N2VC] Relations not supported: {}".format(ex))
+        except Exception as ex:
+            # This may happen if not all of the charms needed by the relation
+            # are ready. We can safely ignore this, because Relate will be
+            # retried when the endpoint of the relation is deployed.
+            self.log.warn("[N2VC] Relations not ready")
 
         # #######################################
         # # Execute initial config primitive(s) #