[WIP] `storageResourceIds` of the scaled out VDU is populated incorrect

This patch will fixes after scaling out a VDU, its value
".instantiatedVnfInfo.vnfcResourceInfo[].storageResourceIds"
has the sameID as "id" shown in ".instantiatedVnfInfo.virtualStorageResourceInfo[]".

Closes-Bug: #1960194
Change-Id: I39416afd21295daf3c5d0e57c9195ac20e7e55e7
This commit is contained in:
navum 2022-05-20 12:53:29 +00:00
parent f10ac5fd56
commit 0692c45f37
3 changed files with 18 additions and 3 deletions

View File

@ -186,6 +186,10 @@ class VnfLcmWithUserDataTest(vnflcm_base.BaseVnfLcmTest):
request_body = (fake_vnflcm.VnfInstances
.make_reverse_scale_request_body('SCALE_IN'))
resp, _ = self._scale_vnf_instance(vnf_instance_id, request_body)
self.assertEqual(vnf_instance.get('instantiatedVnfInfo')
['vnfcResourceInfo'][0]['storageResourceIds'][0],
vnf_instance.get('instantiatedVnfInfo')
['virtualStorageResourceInfo'][0]['id'])
self._wait_lcm_done('COMPLETED', vnf_instance_id=vnf_instance_id)
post_stack_resource_list = self._get_heat_resource_list(stack.id, 2)

View File

@ -3587,3 +3587,4 @@ class TestOpenStack(base.FixturedTestCase):
self.assertNotEqual(uuidsentinel.storage_id,
vnf_instance.instantiated_vnf_info.
virtual_storage_resource_info[0].id)
self.assertEqual(uuidsentinel.storage_id, [v_s_resource_info.id][0])

View File

@ -1737,6 +1737,7 @@ class OpenStack(abstract_driver.VnfAbstractDriver,
region_name=access_info.get('region'))
if scale_vnf_request.type == 'SCALE_OUT':
storage_dict = {}
grp = heatclient.resource_get(
inst_vnf_info.instance_id,
scale_vnf_request.aspect_id)
@ -1784,9 +1785,9 @@ class OpenStack(abstract_driver.VnfAbstractDriver,
if not volumes_attached:
volumes_attached = []
for vol in volumes_attached:
vnfc_resource_info.\
storage_resource_ids.\
append(vol.get('id'))
if vol.get('id'):
storage_dict[vol['id']] = \
vnfc_resource_info.id
vnfc_rscs.append(vnfc_resource_info)
if len(vnfc_rscs) == 0:
continue
@ -1901,6 +1902,15 @@ class OpenStack(abstract_driver.VnfAbstractDriver,
storage_resource = resource
inst_vnf_info.virtual_storage_resource_info.\
append(virtual_storage_resource_info)
vnfc_id = storage_dict.\
get(rsc.physical_resource_id)
if vnfc_id:
for vnfc_rsc in vnfc_rscs:
if vnfc_rsc.id == vnfc_id:
vnfc_rsc.storage_resource_ids.\
append(
virtual_storage_resource_info.id) # noqa
break
inst_vnf_info.vnfc_resource_info.extend(vnfc_rscs)
if scale_vnf_request.type == 'SCALE_IN':
resurce_list = heatclient.resource_get_list(