- self.logger.debug(logging_text + "Checking actions in KDUs")
- kdur = next((x for x in db_vnfr["kdur"] if x["kdu-name"] == kdu_name), None)
- desc_params = self._format_additional_params(kdur.get("additionalParams")) or {}
- if primitive_params:
- desc_params.update(primitive_params)
- # TODO Check if we will need something at vnf level
- index = 0
- for kdu in get_iterable(nsr_deployed, "K8s"):
- if kdu_name == kdu["kdu-name"]:
- db_dict = {"collection": "nsrs", "filter": {"_id": nsr_id},
- "path": "_admin.deployed.K8s.{}".format(index)}
- if primitive == "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")
- parts = kdu_model.split(sep=":")
- if len(parts) == 2:
- kdu_model = parts[0]
-
- if kdu.get("k8scluster-type") in ("helm-chart", "chart"):
- output = await self.k8sclusterhelm.upgrade(cluster_uuid=kdu.get("k8scluster-uuid"),
- kdu_instance=kdu.get("kdu-instance"),
- atomic=True, kdu_model=kdu_model,
- params=desc_params, db_dict=db_dict,
- timeout=300)
- elif kdu.get("k8scluster-type")in ("juju-bundle", "juju"):
- output = await self.k8sclusterjuju.upgrade(cluster_uuid=kdu.get("k8scluster-uuid"),
- kdu_instance=kdu.get("kdu-instance"),
- atomic=True, kdu_model=kdu_model,
- params=desc_params, db_dict=db_dict,
- timeout=300)
-
- else:
- msg = "k8scluster-type not defined"
- raise LcmException(msg)
-
- self.logger.debug(logging_text + " Upgrade of kdu {} done".format(output))
- break
- elif primitive == "rollback":
- if kdu.get("k8scluster-type") in ("helm-chart", "chart"):
- output = await self.k8sclusterhelm.rollback(cluster_uuid=kdu.get("k8scluster-uuid"),
- kdu_instance=kdu.get("kdu-instance"),
- db_dict=db_dict)
- elif kdu.get("k8scluster-type") in ("juju-bundle", "juju"):
- output = await self.k8sclusterjuju.rollback(cluster_uuid=kdu.get("k8scluster-uuid"),
- kdu_instance=kdu.get("kdu-instance"),
- db_dict=db_dict)
- else:
- msg = "k8scluster-type not defined"
- raise LcmException(msg)
- break
- elif primitive == "status":
- if kdu.get("k8scluster-type") in ("helm-chart", "chart"):
- output = await self.k8sclusterhelm.status_kdu(cluster_uuid=kdu.get("k8scluster-uuid"),
- kdu_instance=kdu.get("kdu-instance"))
- elif kdu.get("k8scluster-type") in ("juju-bundle", "juju"):
- output = await self.k8sclusterjuju.status_kdu(cluster_uuid=kdu.get("k8scluster-uuid"),
- kdu_instance=kdu.get("kdu-instance"))
- else:
- msg = "k8scluster-type not defined"
- raise LcmException(msg)
- break
- index += 1
-
- else:
- raise LcmException("KDU '{}' not found".format(kdu_name))
- if output:
- db_nslcmop_update["detailed-status"] = output
- db_nslcmop_update["operationState"] = 'COMPLETED'
- db_nslcmop_update["statusEnteredTime"] = time()
- else:
- db_nslcmop_update["detailed-status"] = ''
- db_nslcmop_update["operationState"] = 'FAILED'
- db_nslcmop_update["statusEnteredTime"] = time()
- return