Feature-9904: Enhancing NG-UI to enable Juju operational view dashboard 45/10345/3
authorksaikiranr <saikiran.k@tataelxsi.co.in>
Mon, 15 Mar 2021 05:09:06 +0000 (10:39 +0530)
committerbravof <fbravo@whitestack.com>
Thu, 18 Mar 2021 12:34:16 +0000 (13:34 +0100)
Implemented functions to receive vcaStatus update message from kafka
and update nsr record in mongo.
Addressed review comments

Change-Id: I54f526c74fd27328c88721002d41bd85a182f9eb
Signed-off-by: Priyadharshini G S <priyadharshini.g@tataelxsi.co.in>
Signed-off-by: ksaikiranr <saikiran.k@tataelxsi.co.in>
osm_lcm/lcm.py
osm_lcm/ns.py

index 6c8be98..659a57c 100644 (file)
@@ -339,6 +339,13 @@ class Lcm:
                 task = asyncio.ensure_future(self.ns.terminate(nsr_id, nslcmop_id))
                 self.lcm_tasks.register("ns", nsr_id, nslcmop_id, "ns_terminate", task)
                 return
+            elif command == "vca_status_refresh":
+                nslcmop = params
+                nslcmop_id = nslcmop["_id"]
+                nsr_id = nslcmop["nsInstanceId"]
+                task = asyncio.ensure_future(self.ns.vca_status_refresh(nsr_id, nslcmop_id))
+                self.lcm_tasks.register("ns", nsr_id, nslcmop_id, "ns_vca_status_refresh", task)
+                return
             elif command == "action":
                 # self.logger.debug("Update NS {}".format(nsr_id))
                 nslcmop = params
index 7f73c19..7a07321 100644 (file)
@@ -208,7 +208,6 @@ class NsLcm(LcmBase):
 
         # self.logger.debug('_on_update_n2vc_db(table={}, filter={}, path={}, updated_data={}'
         #                   .format(table, filter, path, updated_data))
-
         try:
 
             nsr_id = filter.get('_id')
@@ -3372,6 +3371,24 @@ class NsLcm(LcmBase):
         except Exception as e:
             return 'FAIL', 'Error executing action {}: {}'.format(primitive, e)
 
+    async def vca_status_refresh(self, nsr_id, nslcmop_id):
+        """
+        Updating the vca_status with latest juju information in nsrs record
+        :param: nsr_id: Id of the nsr
+        :param: nslcmop_id: Id of the nslcmop
+        :return: None
+        """
+
+        self.logger.debug("Task ns={} action={} Enter".format(nsr_id, nslcmop_id))
+        db_nsr = self.db.get_one("nsrs", {"_id": nsr_id})
+
+        for vca_index, _ in enumerate(db_nsr['_admin']['deployed']['VCA']):
+            table, filter, path = "nsrs", {"_id": nsr_id}, "_admin.deployed.VCA.{}.".format(vca_index)
+            await self._on_update_n2vc_db(table, filter, path, {})
+
+        self.logger.debug("Task ns={} action={} Exit".format(nsr_id, nslcmop_id))
+        self.lcm_tasks.remove("ns", nsr_id, nslcmop_id, "ns_vca_status_refresh")
+
     async def action(self, nsr_id, nslcmop_id):
         # Try to lock HA task here
         task_is_locked_by_me = self.lcm_tasks.lock_HA('ns', 'nslcmops', nslcmop_id)