Refactor cluster-deregister workflow to mimic cluster-create and catch exceptions in secret creation

Change-Id: I83ab2ebf032df665aa0935dbab36e7234188c984
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 0a19de1..6540b71 100644
--- a/osm_lcm/odu_libs/cluster_mgmt.py
+++ b/osm_lcm/odu_libs/cluster_mgmt.py
@@ -305,12 +305,18 @@
     secret_value2 = yaml.safe_dump(
         db_cluster["credentials"], indent=4, default_flow_style=False, sort_keys=False
     )
-    await self.create_secret(
-        secret_name2,
-        secret_namespace2,
-        secret_key2,
-        secret_value2,
-    )
+    try:
+        await self.create_secret(
+            secret_name2,
+            secret_namespace2,
+            secret_key2,
+            secret_value2,
+        )
+    except Exception as e:
+        self.logger.info(
+            f"Cannot create secret {secret_name} in namespace {secret_namespace}: {e}"
+        )
+        return False, ""
 
     # Additional params for the workflow
     cluster_kustomization_name = cluster_name
@@ -460,3 +466,27 @@
         return True, "OK"
     except Exception as e:
         return False, f"Error while cleaning items: {e}"
+
+
+async def clean_items_cluster_deregister(self, op_id, op_params, content):
+    self.logger.info(
+        f"clean_items_cluster_deregister Enter. Operation {op_id}. Params: {op_params}"
+    )
+    # self.logger.debug(f"Content: {content}")
+    # Clean secrets
+    self.logger.info("Cleaning kubeconfig")
+    cluster_name = content["cluster"]["git_name"].lower()
+    items = {
+        "secrets": [
+            {
+                "name": f"kubeconfig-{cluster_name}",
+                "namespace": "managed-resources",
+            },
+        ]
+    }
+
+    try:
+        await self.clean_items(items)
+        return True, "OK"
+    except Exception as e:
+        return False, f"Error while cleaning items: {e}"