X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_lcm%2Fns.py;h=e08e2d6ec942c3661409a33a0efd8f9495583e24;hb=46ab4d81a86c6ff149c700ba0f07a9c722a33e29;hp=29721b391ef7f41485cba1cca4be9c55a5fbc52d;hpb=40603578bc470675f4662ca9534be7515e7a8c9c;p=osm%2FLCM.git diff --git a/osm_lcm/ns.py b/osm_lcm/ns.py index 29721b3..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 @@ -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