Clean-up of resources created in ODU workflows
Change-Id: Ib2051d5844841d6469a4dc3e854ff2ef88a36a87
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
diff --git a/osm_lcm/odu_libs/cluster_mgmt.py b/osm_lcm/odu_libs/cluster_mgmt.py
index 8caed34..719c7a8 100644
--- a/osm_lcm/odu_libs/cluster_mgmt.py
+++ b/osm_lcm/odu_libs/cluster_mgmt.py
@@ -136,27 +136,6 @@
)
return workflow_name
- # self.logger.info(f"Deleting secret {secret_name} in namespace {secret_namespace} ...")
- # self._kubectl.delete_secret(name=secret_name, namespace=secret_namespace)
- # self.logger.info("DONE")
-
- # self.logger.info(f"Listing secrets in namespace {secret_namespace} ...")
- # secret_list = self._kubectl.get_secrets(secret_namespace)
- # # print(secret_list)
- # for item in secret_list:
- # print(item.metadata.name)
- # self.logger.info("DONE")
-
- # self.logger.info(f"Deleting secrets in namespace {secret_namespace} ...")
- # for item in secret_list:
- # print(f"Deleting {item.metadata.name} ...")
- # self._kubectl.delete_secret(
- # name=item.metadata.name,
- # namespace=secret_namespace,
- # )
- # self.logger.info("DELETED")
- # self.logger.info("DONE")
-
async def update_cluster(self, op_id, op_params, content):
self.logger.info("Update cluster eks workflow Enter")
@@ -338,6 +317,30 @@
return False, message
+async def clean_items_cluster_create(self, op_id, op_params, content):
+ self.logger.info("Clean items cluster_create Enter")
+ self.logger.info(f"Operation {op_id}. Params: {op_params}. Content: {content}")
+ items = {
+ "secrets": [
+ {
+ "name": f"secret-age-{content['cluster']['git_name'].lower()}",
+ "namespace": "osm-workflows",
+ }
+ ]
+ }
+ try:
+ await self.clean_items(items)
+ return True, "OK"
+ except Exception as e:
+ return False, f"Error while cleaning items: {e}"
+
+
+async def clean_items_cluster_update(self, op_id, op_params, content):
+ self.logger.info("Clean items cluster_update Enter")
+ self.logger.info(f"Operation {op_id}. Params: {op_params}. Content: {content}")
+ return await self.clean_items_cluster_create(op_id, op_params, content)
+
+
async def check_create_cluster(self, op_id, op_params, content):
self.logger.info(f"Operation {op_id}. Params: {op_params}. Content: {content}")
return True, "OK"
diff --git a/osm_lcm/odu_libs/common.py b/osm_lcm/odu_libs/common.py
index 179135e..a435aa8 100644
--- a/osm_lcm/odu_libs/common.py
+++ b/osm_lcm/odu_libs/common.py
@@ -35,17 +35,16 @@
self.logger.debug(f"secret_data_original={secret_value}")
self.logger.debug(f"secret_data_received={returned_secret_value}")
self.logger.info(
- f"Result of secret comparison: {secret_value==returned_secret_value} ..."
+ f"Result of secret comparison: {secret_value==returned_secret_value}"
)
self.logger.info(
f"Creating secret {secret_name} in namespace {secret_namespace} ..."
)
secret_data = {secret_key: base64.b64encode(secret_value.encode()).decode("utf-8")}
- self.logger.info(f"Secret name: {secret_name}")
- self.logger.info(f"Secret data {secret_data}")
- self.logger.info(f"Namespace: {secret_namespace}")
- self.logger.info("Calling N2VC kubectl to create secret...")
+ self.logger.info(
+ f"Calling N2VC kubectl to create secret. Namespace: {secret_namespace}. Secret name: {secret_name}. Secret data:{secret_data}."
+ )
await self._kubectl.create_secret(
name=secret_name,
data=secret_data,
@@ -55,3 +54,15 @@
self.logger.info(f"Secret {secret_name} CREATED")
await check_secret(secret_name, secret_namespace, secret_key, secret_value)
+
+
+def delete_secret(self, secret_name, secret_namespace):
+ try:
+ self._kubectl.delete_secret(name=secret_name, namespace=secret_namespace)
+ self.logger.info(
+ f"Deleted secret {secret_name} in namespace {secret_namespace}"
+ )
+ except Exception as e:
+ self.logger.error(
+ f"Could not delete secret {secret_name} in namespace {secret_namespace}: {e}"
+ )
diff --git a/osm_lcm/odu_libs/vim_mgmt.py b/osm_lcm/odu_libs/vim_mgmt.py
index e82bc34..8014f0c 100644
--- a/osm_lcm/odu_libs/vim_mgmt.py
+++ b/osm_lcm/odu_libs/vim_mgmt.py
@@ -164,6 +164,7 @@
secret_key,
secret_value,
)
+
# Additional params for the workflow
providerconfig_name = f"{vim_name}-config"
provider_type = content["vim_type"]
@@ -203,6 +204,29 @@
return workflow_name
+async def clean_items_cloud_credentials_create(self, op_id, op_params, content):
+ self.logger.info("Clean items cloud_credentials_create Enter")
+ items = {
+ "secrets": [
+ {
+ "name": f"create-providerconfig-{content['_id']}",
+ "namespace": "osm-workflows",
+ }
+ ]
+ }
+ try:
+ await self.clean_items(items)
+ return True, "OK"
+ except Exception as e:
+ return False, f"Error while cleaning items: {e}"
+
+
+async def clean_items_cloud_credentials_update(self, op_id, op_params, content):
+ self.logger.info("Clean items cloud_credentials_update Enter")
+ self.logger.info(f"Operation {op_id}. Params: {op_params}. Content: {content}")
+ return await self.clean_items_cloud_credentials_create(op_id, op_params, content)
+
+
async def check_create_cloud_credentials(self, op_id, op_params, content):
self.logger.info(f"Operation {op_id}. Params: {op_params}. Content: {content}")
return True, "OK"