X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_lcm%2Fns.py;h=e08e2d6ec942c3661409a33a0efd8f9495583e24;hb=7dc946716e5fc51340e143442ce45bff8c948525;hp=c7e01849ef045b60f39bc9c0b35d11267b8005d8;hpb=d41dbd613b7bc4d7f69349ff7b05c63a6096417b;p=osm%2FLCM.git diff --git a/osm_lcm/ns.py b/osm_lcm/ns.py index c7e0184..e08e2d6 100644 --- a/osm_lcm/ns.py +++ b/osm_lcm/ns.py @@ -783,8 +783,23 @@ class NsLcm(LcmBase): ns_flavor = target["flavor"][int(vdur["ns-flavor-id"])] if target_vim not in ns_flavor["vim_info"]: ns_flavor["vim_info"][target_vim] = {} - # image - ns_image = target["image"][int(vdur["ns-image-id"])] + + # deal with images + # in case alternative images are provided we must check if they should be applied + # for the vim_type, modify the vim_type taking into account + ns_image_id = int(vdur["ns-image-id"]) + if vdur.get("alt-image-ids"): + db_vim = get_vim_account(vnfr["vim-account-id"]) + vim_type = db_vim["vim_type"] + for alt_image_id in vdur.get("alt-image-ids"): + ns_alt_image = target["image"][int(alt_image_id)] + if vim_type == ns_alt_image.get("vim-type"): + # must use alternative image + self.logger.debug("use alternative image id: {}".format(alt_image_id)) + ns_image_id = alt_image_id + vdur["ns-image-id"] = ns_image_id + break + ns_image = target["image"][int(ns_image_id)] if target_vim not in ns_image["vim_info"]: ns_image["vim_info"][target_vim] = {} @@ -1844,7 +1859,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 +1901,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"] @@ -2313,14 +2328,14 @@ class NsLcm(LcmBase): 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"]["kdu-model-locator"] + kdumodel = kdur["helm-chart"] # Default version: helm3, if helm-version is v2 assign v2 k8sclustertype = "helm-chart-v3" self.logger.debug("kdur: {}".format(kdur)) if kdur.get("helm-version") and kdur.get("helm-version") == "v2": k8sclustertype = "helm-chart" elif kdur.get("juju-bundle"): - kdumodel = kdur["juju-bundle"]["kdu-model-locator"] + kdumodel = kdur["juju-bundle"] k8sclustertype = "juju-bundle" else: raise LcmException("kdu type for kdu='{}.{}' is neither helm-chart nor " @@ -3447,9 +3462,9 @@ class NsLcm(LcmBase): 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["initial-config-primitive"]: + for primitive in kdu_configuration.get("initial-config-primitive", []): actions.add(primitive["name"]) - for primitive in kdu_configuration["config-primitive"]: + for primitive in kdu_configuration.get("config-primitive", []): actions.add(primitive["name"]) kdu_action = True if primitive_name in actions else False