"create_oka", op_id, op_params, db_content
)
self.db.set_one(self.db_collection, {"_id": db_content["_id"]}, db_content)
+
+ # Clean items used in the workflow, no matter if the workflow succeeded
+ clean_status, clean_msg = await self.odu.clean_items_workflow(
+ "create_oka", op_id, op_params, db_content
+ )
+ self.logger.info(
+ f"clean_status is :{clean_status} and clean_msg is :{clean_msg}"
+ )
self.logger.info(f"OKA Create Exit with resource status: {resource_status}")
return
"update_oka", op_id, op_params, db_content
)
self.db.set_one(self.db_collection, {"_id": db_content["_id"]}, db_content)
+ # Clean items used in the workflow, no matter if the workflow succeeded
+ clean_status, clean_msg = await self.odu.clean_items_workflow(
+ "update_oka", op_id, op_params, db_content
+ )
+ self.logger.info(
+ f"clean_status is :{clean_status} and clean_msg is :{clean_msg}"
+ )
self.logger.info(f"OKA Update Exit with resource status: {resource_status}")
return
db_content["state"] == "DELETED"
self.db.set_one(self.db_collection, {"_id": db_content["_id"]}, db_content)
self.db.del_one(self.db_collection, {"_id": db_content["_id"]})
+ # Clean items used in the workflow, no matter if the workflow succeeded
+ clean_status, clean_msg = await self.odu.clean_items_workflow(
+ "delete_oka", op_id, op_params, db_content
+ )
+ self.logger.info(
+ f"clean_status is :{clean_status} and clean_msg is :{clean_msg}"
+ )
self.logger.info(f"OKA Delete Exit with resource status: {resource_status}")
return
)
# self.logger.debug(f"Content: {content_list}")
return await self.clean_items_ksu_create(op_id, op_params_list, content_list)
+
+
+async def clean_items_ksu_delete(self, op_id, op_params_list, content_list):
+ self.logger.info(
+ f"clean_items_ksu_delete Enter. Operation {op_id}. Params: {op_params_list}"
+ )
+ # self.logger.debug(f"Content: {content_list}")
+ return True, "OK"
api_version="v1alpha1",
)
return True, workflow_name
+
+
+async def clean_items_oka_create(self, op_id, op_params_list, content_list):
+ self.logger.info(
+ f"clean_items_oka_create Enter. Operation {op_id}. Params: {op_params_list}"
+ )
+ # self.logger.debug(f"Content: {content_list}")
+ volume_name = f"temp-pvc-oka-{op_id}"
+ try:
+ items = {
+ "pods": [
+ {
+ "name": f"copy-pod-{volume_name}",
+ "namespace": "osm-workflows",
+ }
+ ],
+ "pvcs": [
+ {
+ "name": volume_name,
+ "namespace": "osm-workflows",
+ }
+ ],
+ }
+ await self.clean_items(items)
+ return True, "OK"
+ except Exception as e:
+ return False, f"Error while cleaning items: {e}"
+
+
+async def clean_items_oka_update(self, op_id, op_params_list, content_list):
+ self.logger.info(
+ f"clean_items_oka_update Enter. Operation {op_id}. Params: {op_params_list}"
+ )
+ # self.logger.debug(f"Content: {content_list}")
+ return await self.clean_items_oka_create(op_id, op_params_list, content_list)
+
+
+async def clean_items_oka_delete(self, op_id, op_params_list, content_list):
+ self.logger.info(
+ f"clean_items_oka_delete Enter. Operation {op_id}. Params: {op_params_list}"
+ )
+ # self.logger.debug(f"Content: {content_list}")
+ return True, "OK"
},
"create_oka": {
"workflow_function": self.create_oka,
+ "clean_function": self.clean_items_oka_create,
},
"update_oka": {
"workflow_function": self.update_oka,
+ "clean_function": self.clean_items_oka_update,
},
"delete_oka": {
"workflow_function": self.delete_oka,
+ "clean_function": self.clean_items_oka_delete,
},
"create_ksus": {
"workflow_function": self.create_ksus,
move_ksu,
clean_items_ksu_create,
clean_items_ksu_update,
+ clean_items_ksu_delete,
)
from osm_lcm.odu_libs.oka import (
create_oka,
update_oka,
delete_oka,
+ clean_items_oka_create,
+ clean_items_oka_update,
+ clean_items_oka_delete,
)
from osm_lcm.odu_libs.profiles import (
create_profile,
return content["workflow_name"]
async def clean_items(self, items):
+ # Delete pods
+ for pod in items.get("pods", []):
+ name = pod["name"]
+ namespace = pod["namespace"]
+ self.logger.info(f"Deleting pod {name} in namespace {namespace}")
+ self.logger.debug(f"Testing kubectl: {self._kubectl}")
+ self.logger.debug(
+ f"Testing kubectl configuration: {self._kubectl.configuration}"
+ )
+ self.logger.debug(
+ f"Testing kubectl configuration Host: {self._kubectl.configuration.host}"
+ )
+ await self._kubectl.delete_pod(name, namespace)
# Delete secrets
for secret in items.get("secrets", []):
name = secret["name"]