X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_lcm%2Fns.py;h=5131f9f02e11bc5dedf2f294df8f2a760e2eb916;hb=95cc9c5f864ef0d5b78eca278e41a023d7e79281;hp=a90f4e858710d4f0911801495db55a5d751361bb;hpb=832f899a8fa59e67a1e5e34356ef192b835b79a7;p=osm%2FLCM.git diff --git a/osm_lcm/ns.py b/osm_lcm/ns.py index a90f4e8..5131f9f 100644 --- a/osm_lcm/ns.py +++ b/osm_lcm/ns.py @@ -1202,7 +1202,7 @@ class NsLcm(LcmBase): ) step = "create execution environment" - self.logger.debug(logging_text + step) + self.logger.debug(logging_text + step) ee_id = None credentials = None @@ -1215,15 +1215,16 @@ class NsLcm(LcmBase): cloud_name=vca_k8s_cloud, credential_name=vca_k8s_cloud_credential, ) - elif vca_type == "helm" or vca_type == "helm-v3": + elif vca_type == "helm" or vca_type == "helm-v3": ee_id, credentials = await self.vca_map[vca_type].create_execution_environment( namespace=namespace, reuse_ee_id=ee_id, db_dict=db_dict, - cloud_name=vca_cloud, - credential_name=vca_cloud_credential, + config=osm_config, + artifact_path=artifact_path, + vca_type=vca_type ) - else: + else: ee_id, credentials = await self.vca_map[vca_type].create_execution_environment( namespace=namespace, reuse_ee_id=ee_id, @@ -1686,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 @@ -1843,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 @@ -1885,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"] @@ -2308,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"] @@ -2326,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, @@ -2376,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"]) @@ -3441,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):