From 3fde2c74e06b9480af749666ac0fd25af128d9a2 Mon Sep 17 00:00:00 2001 From: ksaikiranr Date: Mon, 15 Mar 2021 10:39:06 +0530 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: Priyadharshini G S Signed-off-by: ksaikiranr --- 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 6c8be98c..659a57c3 100644 --- a/osm_lcm/lcm.py +++ b/osm_lcm/lcm.py @@ -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 diff --git a/osm_lcm/ns.py b/osm_lcm/ns.py index 7f73c19d..7a07321d 100644 --- a/osm_lcm/ns.py +++ b/osm_lcm/ns.py @@ -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) -- 2.25.1