X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=NG-RO%2Fosm_ng_ro%2Fns.py;h=6cea780027b6abd62071ffdbbf5fd7e8d25d8e3a;hb=refs%2Fchanges%2F00%2F13800%2F2;hp=cd750251bc1bdfa9970c70e6af2141ac3d5b6ef6;hpb=321d2e95499981ca8aa4c02027c0359d61115ff2;p=osm%2FRO.git diff --git a/NG-RO/osm_ng_ro/ns.py b/NG-RO/osm_ng_ro/ns.py index cd750251..6cea7800 100644 --- a/NG-RO/osm_ng_ro/ns.py +++ b/NG-RO/osm_ng_ro/ns.py @@ -999,6 +999,7 @@ class Ns(object): disk_list.append(persistent_root_disk[vsd["id"]]) return persistent_root_disk + return persistent_root_disk @staticmethod def find_persistent_volumes( @@ -1422,7 +1423,9 @@ class Ns(object): persistent_root_disk: dict, persistent_ordinary_disk: dict, disk_list: list, + extra_dict: dict, vnf_id: str = None, + nsr_id: str = None, ) -> None: """Fill the disk list by adding persistent ordinary disks. @@ -1448,6 +1451,10 @@ class Ns(object): "multiattach": multiattach, } disk_list.append(persistent_ordinary_disk[disk["id"]]) + if multiattach: # VDU creation has to wait for shared volumes + extra_dict["depends_on"].append( + f"nsrs:{nsr_id}:shared-volumes.{name}" + ) @staticmethod def _prepare_vdu_affinity_group_list( @@ -1598,7 +1605,9 @@ class Ns(object): persistent_root_disk, persistent_ordinary_disk, disk_list, + extra_dict, vnfd["id"], + nsr_id, ) affinity_group_list = Ns._prepare_vdu_affinity_group_list( @@ -1638,6 +1647,7 @@ class Ns(object): "size": target_shared_volume["size-of-storage"], "name": target_shared_volume["id"], "type": target_shared_volume["type-of-storage"], + "keep": Ns.is_volume_keeping_required(target_shared_volume), } extra_dict["params"] = shared_volume_data return extra_dict @@ -2121,7 +2131,6 @@ class Ns(object): "image", "flavor", "affinity-or-anti-affinity-group", - "shared-volumes", ]: self.logger.debug("process NS={} {}".format(nsr_id, item)) diff_items, task_index = self.calculate_diff_items( @@ -2141,7 +2150,7 @@ class Ns(object): # VNF vlds and vdus for vnfr_id, vnfr in db_vnfrs.items(): # vnfr_id need to be set as global variable for among others nested method _process_vdu_params - for item in ["net", "vdu"]: + for item in ["net", "vdu", "shared-volumes"]: self.logger.debug("process VNF={} {}".format(vnfr_id, item)) diff_items, task_index = self.calculate_diff_items( indata=indata, @@ -2889,7 +2898,9 @@ class Ns(object): extra_dict, ): self._assign_vim(target_vim) - target_record = "vnfrs:{}:vdur.{}".format(vnf_id, vdu_index) + target_record = "vnfrs:{}:vdur.{}.vim_info.{}".format( + vnf_id, vdu_index, target_vim + ) target_record_id = "vnfrs:{}:vdur.{}".format(vnf_id, vdu_id) deployment_info = { "action_id": action_id, @@ -2995,7 +3006,9 @@ class Ns(object): ): target_vim, vim_info = next(k_v for k_v in vdu["vim_info"].items()) self._assign_vim(target_vim) - target_record = "vnfrs:{}:vdur.{}".format(vnf["_id"], vdu_index) + target_record = "vnfrs:{}:vdur.{}.vim_info.{}".format( + vnf["_id"], vdu_index, target_vim + ) target_record_id = "vnfrs:{}:vdur.{}".format(vnf["_id"], vdu["id"]) deployment_info = { "action_id": action_id, @@ -3109,7 +3122,9 @@ class Ns(object): ): target_vim, vim_info = next(k_v for k_v in vdu["vim_info"].items()) self._assign_vim(target_vim) - target_record = "vnfrs:{}:vdur.{}".format(vnf["_id"], vdu_index) + target_record = "vnfrs:{}:vdur.{}.vim_info.{}".format( + vnf["_id"], vdu_index, target_vim + ) target_record_id = "vnfrs:{}:vdur.{}".format(vnf["_id"], vdu["id"]) deployment_info = { "action_id": action_id,