bug 664: Allow 'pending' for N2VC.GetPrimitiveStatus
[osm/LCM.git] / osm_lcm / ns.py
index 20c8c4c..e761d76 100644 (file)
@@ -69,9 +69,9 @@ def populate_dict(target_dict, key_list, value):
 
 class NsLcm(LcmBase):
     timeout_vca_on_error = 5 * 60   # Time for charm from first time at blocked,error status to mark as failed
-    total_deploy_timeout = 30 * 60   # global timeout for deployment
-    timeout_charm_delete = 5 * 60
-    timeout_primitive = 5 * 60  # timeout for primitive execution
+    total_deploy_timeout = 2 * 3600   # global timeout for deployment
+    timeout_charm_delete = 10 * 60
+    timeout_primitive = 10 * 60  # timeout for primitive execution
 
     def __init__(self, db, msg, fs, lcm_tasks, ro_config, vca_config, loop):
         """
@@ -560,7 +560,7 @@ class NsLcm(LcmBase):
                     continue
                 vnfr_update = {}
                 if vnf_RO.get("ip_address"):
-                    db_vnfr["ip-address"] = vnfr_update["ip-address"] = vnf_RO["ip_address"]
+                    db_vnfr["ip-address"] = vnfr_update["ip-address"] = vnf_RO["ip_address"].split(";")[0]
                 elif not db_vnfr.get("ip-address"):
                     raise LcmExceptionNoMgmtIP("ns member_vnf_index '{}' has no IP address".format(vnf_index))
 
@@ -575,7 +575,10 @@ class NsLcm(LcmBase):
                             vdur_RO_count_index += 1
                             continue
                         vdur["vim-id"] = vdur_RO.get("vim_vm_id")
-                        vdur["ip-address"] = vdur_RO.get("ip_address")
+                        if vdur_RO.get("ip_address"):
+                            vdur["ip-address"] = vdur_RO["ip_address"].split(";")[0]
+                        else:
+                            vdur["ip-address"] = None
                         vdur["vdu-id-ref"] = vdur_RO.get("vdu_osm_id")
                         vdur["name"] = vdur_RO.get("vim_name")
                         vdur["status"] = vdur_RO.get("status")
@@ -1446,7 +1449,7 @@ class NsLcm(LcmBase):
             )
             while time() - start_primitive_time < self.timeout_primitive:
                 primitive_result_ = await self.n2vc.GetPrimitiveStatus(model_name, primitive_id)
-                if primitive_result_ == "running":
+                if primitive_result_ in ("running", "pending"):
                     pass
                 elif primitive_result_ in ("completed", "failed"):
                     primitive_result = "COMPLETED" if primitive_result_ == "completed" else "FAILED"