X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=rwlaunchpad%2Fplugins%2Frwnsm%2Frift%2Ftasklets%2Frwnsmtasklet%2Frwnsm_conman.py;h=1988cc4a483182c2adec97b87a04c251b22cdd07;hb=f49375710db1acf3cd74c8651d098b7a08e8d0b2;hp=01c0dcb2a987cf831a988a2a637b49f8faa2ce00;hpb=49868d2c71eb364cee9707515be6841a568dad40;p=osm%2FSO.git diff --git a/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/rwnsm_conman.py b/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/rwnsm_conman.py index 01c0dcb2..1988cc4a 100644 --- a/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/rwnsm_conman.py +++ b/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/rwnsm_conman.py @@ -46,6 +46,7 @@ class ROConfigManager(object): self._loop = loop self._dts = dts self.nsm = parent + self.project = parent._project self._log.debug("Initialized ROConfigManager") def is_ready(self): @@ -53,7 +54,7 @@ class ROConfigManager(object): @property def cm_state_xpath(self): - return ("/rw-conman:cm-state/rw-conman:cm-nsr") + return self.project.add_project("/rw-conman:cm-state/rw-conman:cm-nsr") @classmethod def map_config_status(cls, status): @@ -62,7 +63,7 @@ class ROConfigManager(object): 'received': nsrY.ConfigStates.CONFIGURING, 'cfg_delay': nsrY.ConfigStates.CONFIGURING, 'cfg_process': nsrY.ConfigStates.CONFIGURING, - 'cfg_process-failed': nsrY.ConfigStates.CONFIGURING, + 'cfg_process_failed': nsrY.ConfigStates.CONFIGURING, 'cfg_sched': nsrY.ConfigStates.CONFIGURING, 'connecting': nsrY.ConfigStates.CONFIGURING, 'failed_connection': nsrY.ConfigStates.CONFIGURING, @@ -103,9 +104,13 @@ class ROConfigManager(object): # Update the NSR's config status new_status = ROConfigManager.map_config_status(cm_nsr['state']) - self._log.debug("Updating config status of NSR {} to {}({})". - format(nsrid, new_status, cm_nsr['state'])) - yield from self.nsm.nsrs[nsrid].set_config_status(new_status, cm_nsr.get('state_details')) + self._log.info("Updating config status of NSR {} to {}({})". + format(nsrid, new_status, cm_nsr['state'])) + + # If terminate nsr request comes when NS instantiation is in 'Configuring state'; self.nsm.nsrs dict + # is already empty when self.nsm.nsrs[nsrid].set_config_status gets executed. So adding a check here. + if nsrid in self.nsm.nsrs: + yield from self.nsm.nsrs[nsrid].set_config_status(new_status, cm_nsr.get('state_details')) except Exception as e: self._log.error("Failed to process cm-state for nsr {}: {}".