Store cluster credentials in DB once the cluster is created 85/14885/2
authorgarciadeblas <gerardo.garciadeblas@telefonica.com>
Tue, 21 Jan 2025 10:49:38 +0000 (11:49 +0100)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Tue, 21 Jan 2025 17:46:08 +0000 (18:46 +0100)
Change-Id: I06fed54bb89de29c3d7be2d47e65a70aa929ca0e
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
osm_lcm/k8s.py

index da20e56..0d01369 100644 (file)
@@ -365,15 +365,24 @@ class ClusterLcm(GitOpsLcm):
             db_cluster, op_id, workflow_status, resource_status
         )
         db_cluster["current_operation"] = None
+
+        # Retrieve credentials
+        cluster_creds = None
+        if db_cluster["resourceState"] == "READY" and db_cluster["state"] == "CREATED":
+            result, cluster_creds = await self.odu.get_cluster_credentials(db_cluster)
+            # TODO: manage the case where the credentials are not available
+            if result:
+                db_cluster["credentials"] = cluster_creds
+
+        # Update db_cluster
         self.db.set_one("clusters", {"_id": db_cluster["_id"]}, db_cluster)
         self.update_profile_state(db_cluster, workflow_status, resource_status)
 
+        # Register the cluster in k8sclusters collection
         db_register = self.db.get_one("k8sclusters", {"name": db_cluster["name"]})
-
-        if db_cluster["resourceState"] == "READY" and db_cluster["state"] == "CREATED":
-            result, cluster_creds = await self.odu.get_cluster_credentials(db_cluster)
-            # To call the lcm.py for registering the cluster in k8scluster lcm.
+        if cluster_creds:
             db_register["credentials"] = cluster_creds
+            # To call the lcm.py for registering the cluster in k8scluster lcm.
             self.db.set_one("k8sclusters", {"_id": db_register["_id"]}, db_register)
             register = await self.regist.create(db_register, order_id)
             self.logger.debug(f"Register is : {register}")