From aa73583b50eed576809f58e9bd4313aedf8e2622 Mon Sep 17 00:00:00 2001 From: Ayumu Ueha Date: Wed, 31 Jan 2024 06:06:51 +0000 Subject: [PATCH] Fix db-migration-tool issues This patch fixes the following db-migration-tool issues. 1. Difference of map key for vimConnectionInfo between VnfInstanceV2 and VnfLcmOpOccV2. 2. `NoSuchOptError` during executing db-migration-tool. 3. Fail to convert of `computeResource`, `networkResource` and `storageResource` data fails in `Resource Changes` of VnfLcmOpOccV2. Closes-Bug: #2051469 Implements: blueprint db-migration-tool Change-Id: I58064a76401c3156239137a6d411938662c59875 --- tacker/db/migration/migrate_to_v2.py | 22 ++++++++++++------- .../tests/unit/db/test_db_migration_to_v2.py | 10 ++++----- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/tacker/db/migration/migrate_to_v2.py b/tacker/db/migration/migrate_to_v2.py index cf39e5be4..5e0bf0c1c 100644 --- a/tacker/db/migration/migrate_to_v2.py +++ b/tacker/db/migration/migrate_to_v2.py @@ -55,6 +55,13 @@ def env(*_vars, **kwargs): return kwargs.get('default', '') +DEFAULT_OPTS = [ + cfg.BoolOpt('use_credential_encryption', default=False, + help=_("Enable to encrypt the credential")) +] + +CONF.register_opts(DEFAULT_OPTS) + OPTS = [cfg.StrOpt('user_domain_id', default=env("OS_USER_DOMAIN_ID", default='default'), help='User Domain Id'), @@ -264,7 +271,7 @@ def _to_vim_connection_info(vim_con_infos, vim_infos): "accessInfo": _info.get("access_info"), "extra": _info.get("extra")} vim_info_obj = objects_v2.VimConnectionInfo(**fields) - dict_info["vim{}".format(i)] = vim_info_obj + dict_info["vim_{}".format(i)] = vim_info_obj return dict_info @@ -720,7 +727,7 @@ def _get_vim(context, vim_con_info): def _set_stack_id(inst_v2, vnf): - heat_client = heat_utils.HeatClient(inst_v2.vimConnectionInfo["vim0"]) + heat_client = heat_utils.HeatClient(inst_v2.vimConnectionInfo["vim_0"]) stack_names = [] stack_names.append(f"vnflcm_{inst_v2.id}") stack_names.append(f"{inst_v2.vnfInstanceName}_{inst_v2.id}") @@ -779,7 +786,7 @@ def create_vnf_instance_v2(context, vnf_id): metadata=_vnf_instance.vnf_metadata,) if inst_v2.instantiatedVnfInfo: _set_cp_instance_type(inst_v2) - if inst_v2.vimConnectionInfo["vim0"].accessInfo.get("project"): + if inst_v2.vimConnectionInfo["vim_0"].accessInfo.get("project"): _set_stack_id(inst_v2, _vnf) inst_v2.create(context) return inst_v2 @@ -853,7 +860,7 @@ def _create_resource_changes_v2(dict_resource_changes, affected_vnfc["removed_storage_resource_ids"], # v1 -> v2 'computeResource': - objects_v2.ResourceHandle(**affected_vnfc["compute_resource"]), + _to_resource_handle(affected_vnfc["compute_resource"]), 'vnfdId': None, 'resourceDefinitionId': None, 'zoneId': None, @@ -875,8 +882,7 @@ def _create_resource_changes_v2(dict_resource_changes, # v1 -> v2 'vnfdId': None, 'networkResource': - objects_v2.ResourceHandle( - **affected_vl["network_resource"]), + _to_resource_handle(affected_vl["network_resource"]), 'vnfLinkPortIds': None, 'resourceDefinitionId': None, 'zoneId': None, @@ -898,8 +904,8 @@ def _create_resource_changes_v2(dict_resource_changes, affected_vstorage["virtual_storage_desc_id"], 'changeType': affected_vstorage["change_type"], # v1 -> v2 - 'storageResource': objects_v2.ResourceHandle( - **affected_vstorage["storage_resource"]), + 'storageResource': + _to_resource_handle(affected_vstorage["storage_resource"]), 'vnfdId': None, 'resourceDefinitionId': None, 'zoneId': None, diff --git a/tacker/tests/unit/db/test_db_migration_to_v2.py b/tacker/tests/unit/db/test_db_migration_to_v2.py index 2428b5444..4125683e5 100644 --- a/tacker/tests/unit/db/test_db_migration_to_v2.py +++ b/tacker/tests/unit/db/test_db_migration_to_v2.py @@ -1026,15 +1026,15 @@ class TestDbMigrationToV2(SqlTestCase): # vimConnectionInfo vim_conn_info_v2 = vnf_instance_v2.vimConnectionInfo vim_conn_info_v1 = vnf_instance_v1.vim_connection_info - self.assertEqual(vim_conn_info_v2["vim0"].vimId, + self.assertEqual(vim_conn_info_v2["vim_0"].vimId, vim_conn_info_v1[0].vim_id) - self.assertEqual(vim_conn_info_v2["vim0"].vimType, + self.assertEqual(vim_conn_info_v2["vim_0"].vimType, vim_conn_info_v1[0].vim_type) - self.assertEqual(vim_conn_info_v2["vim0"].interfaceInfo, + self.assertEqual(vim_conn_info_v2["vim_0"].interfaceInfo, vim_conn_info_v1[0].interface_info) - self.assertEqual(vim_conn_info_v2["vim0"].accessInfo, + self.assertEqual(vim_conn_info_v2["vim_0"].accessInfo, vim_conn_info_v1[0].access_info) - self.assertEqual(vim_conn_info_v2["vim0"].extra, + self.assertEqual(vim_conn_info_v2["vim_0"].extra, vim_conn_info_v1[0].extra) self.assertEqual(vnf_instance_v2.instantiationState,