Fix missing vnfc resource updating on vnf respawn via SOL003-style Heal API call
Note: "SOL003-style" means a Heal API call without passing vnfcInstanceId as the comment in FT source code states. Related-Bug: #1886213 Change-Id: Ia6fe6b3179703f23266b71dd6595b75d1b801191
This commit is contained in:
parent
7e3f2d794d
commit
d886ac7fec
@ -1333,9 +1333,8 @@ class Conductor(manager.Manager):
|
|||||||
p_list)
|
p_list)
|
||||||
|
|
||||||
def _update_placement(self, context, vnf_dict, vnf_instance):
|
def _update_placement(self, context, vnf_dict, vnf_instance):
|
||||||
self.vnfm_plugin.update_placement_constraint(context,
|
self.vnfm_plugin.update_placement_constraint_heal(
|
||||||
vnf_dict,
|
context, vnf_dict, vnf_instance)
|
||||||
vnf_instance)
|
|
||||||
|
|
||||||
def _delete_placement(self, context, vnf_instance_id):
|
def _delete_placement(self, context, vnf_instance_id):
|
||||||
self.vnfm_plugin.delete_placement_constraint(context,
|
self.vnfm_plugin.delete_placement_constraint(context,
|
||||||
|
@ -609,9 +609,9 @@ class TestVnflcmDriver(db_base.SqlTestCase):
|
|||||||
# Vnf resource software images will be created during
|
# Vnf resource software images will be created during
|
||||||
# instantiation.
|
# instantiation.
|
||||||
self.assertEqual(1, mock_resource_create.call_count)
|
self.assertEqual(1, mock_resource_create.call_count)
|
||||||
# Invoke will be called 6 times, 3 for deleting the vnf
|
# Invoke will be called 7 times, 3 for deleting the vnf
|
||||||
# resources and 3 during instantiation.
|
# resources and 4 during instantiation.
|
||||||
self.assertEqual(6, self._vnf_manager.invoke.call_count)
|
self.assertEqual(7, self._vnf_manager.invoke.call_count)
|
||||||
expected_msg = ("Request received for healing vnf '%s' "
|
expected_msg = ("Request received for healing vnf '%s' "
|
||||||
"is completed successfully")
|
"is completed successfully")
|
||||||
mock_log.info.assert_called_with(expected_msg,
|
mock_log.info.assert_called_with(expected_msg,
|
||||||
|
@ -544,10 +544,22 @@ class VnfLcmDriver(abstract_driver.VnfInstanceAbstractDriver):
|
|||||||
|
|
||||||
instantiate_vnf_request = objects.InstantiateVnfRequest.\
|
instantiate_vnf_request = objects.InstantiateVnfRequest.\
|
||||||
from_vnf_instance(vnf_instance)
|
from_vnf_instance(vnf_instance)
|
||||||
|
vnf_instance.instantiated_vnf_info.reinitialize()
|
||||||
|
vnf_instance.task_state = fields.VnfInstanceTaskState.INSTANTIATING
|
||||||
|
vnfd_dict = vnflcm_utils._get_vnfd_dict(
|
||||||
|
context, vnf_instance.vnfd_id, instantiate_vnf_request.flavour_id)
|
||||||
|
vnflcm_utils._build_instantiated_vnf_info(
|
||||||
|
vnfd_dict, instantiate_vnf_request, vnf_instance,
|
||||||
|
vim_connection_info.vim_id)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self._instantiate_vnf(context, vnf_instance, vnf_dict,
|
self._instantiate_vnf(context, vnf_instance, vnf_dict,
|
||||||
vim_connection_info, instantiate_vnf_request)
|
vim_connection_info, instantiate_vnf_request)
|
||||||
|
self._vnf_manager.invoke(
|
||||||
|
vim_connection_info.vim_type, 'post_vnf_instantiation',
|
||||||
|
context=context, vnf_instance=vnf_instance,
|
||||||
|
vim_connection_info=vim_connection_info)
|
||||||
|
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
with excutils.save_and_reraise_exception() as exc_ctxt:
|
with excutils.save_and_reraise_exception() as exc_ctxt:
|
||||||
exc_ctxt.reraise = False
|
exc_ctxt.reraise = False
|
||||||
|
Loading…
x
Reference in New Issue
Block a user