X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_lcm%2Fns.py;h=5131f9f02e11bc5dedf2f294df8f2a760e2eb916;hb=95cc9c5f864ef0d5b78eca278e41a023d7e79281;hp=8cde03aa748427d604521894e7ccefe459e09b25;hpb=18cb3cb207d63cf1b13168f79205623030a543fa;p=osm%2FLCM.git diff --git a/osm_lcm/ns.py b/osm_lcm/ns.py index 8cde03a..5131f9f 100644 --- a/osm_lcm/ns.py +++ b/osm_lcm/ns.py @@ -1687,7 +1687,7 @@ class NsLcm(LcmBase): vnfd = self.db.get_one("vnfds", {"_id": vnfd_id}) # store vnfd - db_vnfds.append(vnfd) # vnfd's indexed by id + db_vnfds.append(vnfd) # Get or generates the _admin.deployed.VCA list vca_deployed_list = None @@ -1844,7 +1844,7 @@ class NsLcm(LcmBase): ) for kdud in get_kdu_list(vnfd): kdu_name = kdud["name"] - descriptor_config = get_kdu_configuration(vnfd, kdu_name) + descriptor_config = kdud.get('kdu-configuration') if descriptor_config: vdu_id = None vdu_index = 0 @@ -1886,7 +1886,7 @@ class NsLcm(LcmBase): vdu_name = None # Get additional parameters - deploy_params = {"OSM": get_osm_params(db_vnfr)} + deploy_params = {"OSM": {"vim_account_id": ns_params["vimAccountId"]}} if db_nsr.get("additionalParamsForNs"): deploy_params.update(parse_yaml_strings(db_nsr["additionalParamsForNs"].copy())) base_folder = nsd["_admin"]["storage"] @@ -2309,7 +2309,8 @@ class NsLcm(LcmBase): # Step 0: Prepare and set parameters desc_params = parse_yaml_strings(kdur.get("additionalParams")) vnfd_id = vnfr_data.get('vnfd-id') - kdud = next(kdud for kdud in db_vnfds[vnfd_id]["kdu"] if kdud["name"] == kdur["kdu-name"]) + vnfd_with_id = find_in_list(db_vnfds, lambda vnfd: vnfd["_id"] == vnfd_id) + kdud = next(kdud for kdud in vnfd_with_id["kdu"] if kdud["name"] == kdur["kdu-name"]) namespace = kdur.get("k8s-namespace") if kdur.get("helm-chart"): kdumodel = kdur["helm-chart"] @@ -2327,7 +2328,8 @@ class NsLcm(LcmBase): format(vnfr_data["member-vnf-index-ref"], kdur["kdu-name"])) # check if kdumodel is a file and exists try: - storage = deep_get(db_vnfds.get(vnfd_id), ('_admin', 'storage')) + vnfd_with_id = find_in_list(db_vnfds, lambda vnfd: vnfd["_id"] == vnfd_id) + storage = deep_get(vnfd_with_id, ('_admin', 'storage')) if storage and storage.get('pkg-dir'): # may be not present if vnfd has not artifacts # path format: /vnfdid/pkkdir/helm-charts|juju-bundles/kdumodel filename = '{}/{}/{}s/{}'.format(storage["folder"], storage["pkg-dir"], k8sclustertype, @@ -2377,9 +2379,9 @@ class NsLcm(LcmBase): db_path = "_admin.deployed.K8s.{}".format(index) db_nsr_update[db_path] = k8s_instance_info self.update_db_2("nsrs", nsr_id, db_nsr_update) - + vnfd_with_id = find_in_list(db_vnfds, lambda vnf: vnf["_id"] == vnfd_id) task = asyncio.ensure_future( - self._install_kdu(nsr_id, db_path, vnfr_data, kdu_index, kdud, db_vnfds[vnfd_id], + self._install_kdu(nsr_id, db_path, vnfr_data, kdu_index, kdud, vnfd_with_id, k8s_instance_info, k8params=desc_params, timeout=600)) self.lcm_tasks.register("ns", nsr_id, nslcmop_id, "instantiate_KDU-{}".format(index), task) task_instantiation_info[task] = "Deploying KDU {}".format(kdur["kdu-name"]) @@ -3442,9 +3444,14 @@ class NsLcm(LcmBase): desc_params = parse_yaml_strings(db_vnfr.get("additionalParamsForVnf")) else: desc_params = parse_yaml_strings(db_nsr.get("additionalParamsForNs")) - - if kdu_name and get_kdu_configuration(db_vnfd): - kdu_action = True if not get_kdu_configuration(db_vnfd)["juju"] else False + if kdu_name and get_kdu_configuration(db_vnfd, kdu_name): + kdu_configuration = get_kdu_configuration(db_vnfd, kdu_name) + actions = set() + for primitive in kdu_configuration.get("initial-config-primitive", []): + actions.add(primitive["name"]) + for primitive in kdu_configuration.get("config-primitive", []): + actions.add(primitive["name"]) + kdu_action = True if primitive_name in actions else False # TODO check if ns is in a proper status if kdu_name and (primitive_name in ("upgrade", "rollback", "status") or kdu_action):