projects
/
osm
/
SO.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge "358 - Handling Vnf delete conflicts from RO"
[osm/SO.git]
/
rwlaunchpad
/
plugins
/
rwnsm
/
rift
/
tasklets
/
rwnsmtasklet
/
openmano_nsm.py
diff --git
a/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/openmano_nsm.py
b/rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/openmano_nsm.py
index
9a9efb5
..
fa933ba
100644
(file)
--- a/
rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/openmano_nsm.py
+++ b/
rwlaunchpad/plugins/rwnsm/rift/tasklets/rwnsmtasklet/openmano_nsm.py
@@
-227,9
+227,11
@@
class OpenmanoVnfr(object):
if self._vnf_id is None:
self._log.warning("Openmano vnf id not set. Cannot delete.")
return
if self._vnf_id is None:
self._log.warning("Openmano vnf id not set. Cannot delete.")
return
-
- self._cli_api.vnf_delete(self._vnf_id)
-
+ try:
+ self._cli_api.vnf_delete(self._vnf_id)
+ except Exception as e:
+ self._log.error(e)
+ raise e
class OpenmanoNSRecordState(Enum):
""" Network Service Record State """
class OpenmanoNSRecordState(Enum):
""" Network Service Record State """
@@
-617,7
+619,14
@@
class OpenmanoNsr(object):
deleted_vnf_id_list = []
for vnfr in self._vnfrs:
if vnfr.vnfr.vnfd.id not in deleted_vnf_id_list:
deleted_vnf_id_list = []
for vnfr in self._vnfrs:
if vnfr.vnfr.vnfd.id not in deleted_vnf_id_list:
- vnfr.delete()
+ try:
+ vnfr.delete()
+ except Exception as e:
+ self._log.error("Failed to delete the vnf at the RO")
+ if "Resource is not free" in str(e):
+ self._log.error("Resource is not free, hence forego the vnf-delete")
+ else:
+ raise e
deleted_vnf_id_list.append(vnfr.vnfr.vnfd.id)
@asyncio.coroutine
deleted_vnf_id_list.append(vnfr.vnfr.vnfd.id)
@asyncio.coroutine
@@
-1207,8
+1216,12
@@
class OpenmanoNsPlugin(nsmpluginbase.NsmPluginBase):
del self._openmano_nsrs[nsr_id]
def terminate(self, openmano_nsr):
del self._openmano_nsrs[nsr_id]
def terminate(self, openmano_nsr):
- openmano_nsr.terminate()
- openmano_nsr.delete()
+ try:
+ openmano_nsr.terminate()
+ openmano_nsr.delete()
+ except Exception as e:
+ self._log.error("The NSR terminate failed for {}".format(openmano_nsr))
+ raise e
@asyncio.coroutine
def terminate_vnf(self, nsr, vnfr, scalein=False):
@asyncio.coroutine
def terminate_vnf(self, nsr, vnfr, scalein=False):
@@
-1218,8
+1231,13
@@
class OpenmanoNsPlugin(nsmpluginbase.NsmPluginBase):
if scalein:
self._log.debug("Terminating Scaling VNFR - {}".format(vnfr))
openmano_vnf_nsr = self._openmano_nsr_by_vnfr_id[vnfr.id]
if scalein:
self._log.debug("Terminating Scaling VNFR - {}".format(vnfr))
openmano_vnf_nsr = self._openmano_nsr_by_vnfr_id[vnfr.id]
- openmano_vnf_nsr.terminate()
- openmano_vnf_nsr.delete()
+ try:
+ openmano_vnf_nsr.terminate()
+ openmano_vnf_nsr.delete()
+ except Exception as e:
+ self._log.error("The NSR terminate failed for {}".format(openmano_nsr))
+ raise e
+
yield from openmano_vnf_nsr.remove_vnf(vnfr)
@asyncio.coroutine
yield from openmano_vnf_nsr.remove_vnf(vnfr)
@asyncio.coroutine