VNFs with only VLDs compatibility 73/6873/1
authorgcalvino <guillermo.calvinosanchez@altran.com>
Tue, 13 Nov 2018 16:19:32 +0000 (17:19 +0100)
committergcalvino <guillermo.calvinosanchez@altran.com>
Tue, 13 Nov 2018 16:19:32 +0000 (17:19 +0100)
Signed-off-by: gcalvino <guillermo.calvinosanchez@altran.com>
osm_lcm/ROclient.py
osm_lcm/ns.py

index 73a1b13..d0bef33 100644 (file)
@@ -103,7 +103,7 @@ class ROClient:
                     'ns': 'instances'}
     mandatory_for_create = {
         'tenant': ("name", ),
-        'vnfd': ("name", "id", "connection-point", "vdu"),
+        'vnfd': ("name", "id"),
         'nsd': ("name", "id"),
         'ns': ("name", "scenario", "datacenter"),
         'vim': ("name", "vim_url"),
@@ -353,7 +353,7 @@ class ROClient:
         """
         ns_info = {}
         for vnf in ns_descriptor["vnfs"]:
-            if not vnf.get("ip_address"):
+            if not vnf.get("ip_address") and vnf.get("vms"):
                 raise ROClientException("ns member_vnf_index '{}' has no IP address".format(
                     vnf["member_vnf_index"]), http_code=409)
             vnfr_info = {
index 35d80a0..3126b17 100644 (file)
@@ -149,7 +149,7 @@ class NsLcm(LcmBase):
             vnfd_RO.pop("_admin", None)
             if new_id:
                 vnfd_RO["id"] = new_id
-            for vdu in vnfd_RO["vdu"]:
+            for vdu in vnfd_RO.get("vdu", ()):
                 if "cloud-init-file" in vdu:
                     base_folder = vnfd["_admin"]["storage"]
                     clout_init_file = "{}/{}/cloud_init/{}".format(
@@ -310,7 +310,7 @@ class NsLcm(LcmBase):
                         elif vnfd["mgmt-interface"].get("cp"):
                             mgmt_cp = vnfd["mgmt-interface"]["cp"]
 
-                for vdu in vnfd.get("vdu"):
+                for vdu in vnfd.get("vdu", ()):
                     if vdu.get("vdu-configuration"):
                         vdu_needed_access.append(vdu["id"])
                     elif mgmt_cp:
@@ -900,7 +900,7 @@ class NsLcm(LcmBase):
 
                 # Deploy charms for each VDU that supports one.
                 vdu_index = 0
-                for vdu in vnfd['vdu']:
+                for vdu in vnfd.get('vdu', ()):
                     vdu_config = vdu.get('vdu-configuration')
                     proxy_charm = None
                     config_primitive = None