From 772442d513fb0f9d046bedd6b5184897de9377ed Mon Sep 17 00:00:00 2001 From: Priyadharshini G S Date: Thu, 28 Jan 2021 06:55:40 +0000 Subject: [PATCH] Feature-9904: Enhancing NG-UI to enable Juju operational view dashboard Implemented functions to receive vcaStatus update message from kafka and update nsr record in mongo. Addressed review comments Change-Id: I54f526c74fd27328c88721002d41bd85a182f9eb Signed-off-by: ksaikiranr Signed-off-by: Priyadharshini G S --- osm_lcm/lcm.py | 7 +++++++ osm_lcm/ns.py | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/osm_lcm/lcm.py b/osm_lcm/lcm.py index eaf25585..a3fa6094 100644 --- a/osm_lcm/lcm.py +++ b/osm_lcm/lcm.py @@ -350,6 +350,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 diff --git a/osm_lcm/ns.py b/osm_lcm/ns.py index 2a0e8b40..cbfb868d 100644 --- a/osm_lcm/ns.py +++ b/osm_lcm/ns.py @@ -197,7 +197,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') @@ -3644,6 +3643,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 -- 2.25.1