diff --git a/osm_lcm/ns.py b/osm_lcm/ns.py index 6facda67fdeac27f8b710d10c4cf3c9d172c0b8a..3f6dbc69e3a6741da3d6ac9ce28049e0ae4c4a80 100644 --- a/osm_lcm/ns.py +++ b/osm_lcm/ns.py @@ -5383,6 +5383,9 @@ class NsLcm(LcmBase): if kdu_name and ( primitive_name in ("upgrade", "rollback", "status") or kdu_action ): + # kdur and desc_params already set from before + if primitive_params: + desc_params.update(primitive_params) # TODO Check if we will need something at vnf level for index, kdu in enumerate(get_iterable(nsr_deployed, "K8s")): if ( @@ -5411,60 +5414,24 @@ class NsLcm(LcmBase): + "Exec k8s {} on {}.{}".format(primitive_name, vnf_index, kdu_name) ) step = "Executing kdu {}".format(primitive_name) - if primitive_name == "upgrade" and primitive_params: - if primitive_params.get("kdu_model"): - kdu_model = primitive_params.pop("kdu_model") + if primitive_name == "upgrade": + if desc_params.get("kdu_model"): + kdu_model = desc_params.get("kdu_model") + del desc_params["kdu_model"] else: kdu_model = kdu.get("kdu-model") if kdu_model.count("/") < 2: # helm chart is not embedded parts = kdu_model.split(sep=":") if len(parts) == 2: kdu_model = parts[0] - if primitive_params.get("kdu_atomic_upgrade"): - atomic_upgrade = primitive_params.get( + if desc_params.get("kdu_atomic_upgrade"): + atomic_upgrade = desc_params.get( "kdu_atomic_upgrade" ).lower() in ("yes", "true", "1") - del primitive_params["kdu_atomic_upgrade"] + del desc_params["kdu_atomic_upgrade"] else: atomic_upgrade = True - # Type of upgrade: reset, reuse, reset_then_reuse - reset_values = False - reuse_values = False - reset_then_reuse_values = False - # If no option is specified, default behaviour is reuse_values - # Otherwise, options will be parsed and used - if ( - ("kdu_reset_values" not in primitive_params) - and ("kdu_reuse_values" not in primitive_params) - and ("kdu_reset_then_reuse_values" not in primitive_params) - ): - reuse_values = True - else: - if primitive_params.get("kdu_reset_values"): - reset_values = primitive_params.pop( - "kdu_reset_values" - ).lower() in ("yes", "true", "1") - if primitive_params.get("kdu_reuse_values"): - reuse_values = primitive_params.pop( - "kdu_reuse_values" - ).lower() in ("yes", "true", "1") - if primitive_params.get("kdu_reset_then_reuse_values"): - reset_then_reuse_values = primitive_params.get( - "kdu_reset_then_reuse_values" - ).lower() in ("yes", "true", "1") - # Two true options are not possible - if ( - sum([reset_values, reuse_values, reset_then_reuse_values]) - >= 2 - ): - raise LcmException( - "Cannot upgrade the KDU simultaneously with two true options to handle values" - ) - # kdur and desc_params already set from before - if reset_values: - desc_params = primitive_params - else: - desc_params.update(primitive_params) + detailed_status = await asyncio.wait_for( self.k8scluster_map[kdu["k8scluster-type"]].upgrade( cluster_uuid=kdu.get("k8scluster-uuid"),