From: ksaikiranr Date: Mon, 15 Mar 2021 05:09:06 +0000 (+0530) Subject: Feature-9904: Enhancing NG-UI to enable Juju operational view dashboard X-Git-Tag: branch-sol006v331-start~6 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=refs%2Fchanges%2F45%2F10345%2F3;p=osm%2FLCM.git 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 --- diff --git a/osm_lcm/lcm.py b/osm_lcm/lcm.py index 6c8be98..659a57c 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 7f73c19..7a07321 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)