diff --git a/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py b/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py index 1f8269e363..9e89851e52 100644 --- a/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py +++ b/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py @@ -569,9 +569,8 @@ class NetAppCmodeFileStorageLibrary(object): } # NOTE(dviroel): Data Motion functions access share's 'share_server' # attribute to get vserser information. - dest_share = copy.deepcopy(share.to_dict()) - dest_share['share_server'] = (share_server.to_dict() - if share_server else None) + dest_share = copy.copy(share.to_dict()) + dest_share['share_server'] = share_server dm_session = data_motion.DataMotionSession() # Source host info diff --git a/manila/share/drivers/netapp/dataontap/cluster_mode/lib_multi_svm.py b/manila/share/drivers/netapp/dataontap/cluster_mode/lib_multi_svm.py index 3eb832af88..4f241a4718 100644 --- a/manila/share/drivers/netapp/dataontap/cluster_mode/lib_multi_svm.py +++ b/manila/share/drivers/netapp/dataontap/cluster_mode/lib_multi_svm.py @@ -20,7 +20,6 @@ variant creates Data ONTAP storage virtual machines (i.e. 'vservers') as needed to provision shares. """ -import copy import re from oslo_log import log @@ -680,12 +679,10 @@ class NetAppCmodeMultiSVMFileStorageLibrary( if parent_share['host'] != share['host']: # 1. Retrieve source and destination vservers from source and # destination shares - new_share = copy.deepcopy(share.to_dict()) - new_share['share_server'] = share_server.to_dict() - dm_session = data_motion.DataMotionSession() src_vserver = dm_session.get_vserver_from_share(parent_share) - dest_vserver = dm_session.get_vserver_from_share(new_share) + dest_vserver = dm_session.get_vserver_from_share_server( + share_server) # 2. Retrieve the source share host's client and cluster name src_share_host = share_utils.extract_host( @@ -697,7 +694,7 @@ class NetAppCmodeMultiSVMFileStorageLibrary( # 3. Retrieve new share host's client dest_share_host = share_utils.extract_host( - new_share['host'], level='backend_name') + share['host'], level='backend_name') dest_share_client = data_motion.get_client_for_backend( dest_share_host, vserver_name=dest_vserver) dest_share_cluster_name = dest_share_client.get_cluster_name() diff --git a/manila/tests/share/drivers/netapp/dataontap/cluster_mode/test_lib_multi_svm.py b/manila/tests/share/drivers/netapp/dataontap/cluster_mode/test_lib_multi_svm.py index 1a75ada441..2e03ddb822 100644 --- a/manila/tests/share/drivers/netapp/dataontap/cluster_mode/test_lib_multi_svm.py +++ b/manila/tests/share/drivers/netapp/dataontap/cluster_mode/test_lib_multi_svm.py @@ -1311,7 +1311,10 @@ class NetAppFileStorageLibraryTestCase(test.TestCase): mock.Mock(return_value=mock_dm_session)) mock_get_vserver = self.mock_object( mock_dm_session, 'get_vserver_from_share', - mock.Mock(side_effect=[src_vserver, dest_vserver])) + mock.Mock(return_value=src_vserver)) + mock_get_vserver_from_share_server = self.mock_object( + mock_dm_session, 'get_vserver_from_share_server', + mock.Mock(return_value=dest_vserver)) src_vserver_client = mock.Mock() dest_vserver_client = mock.Mock() mock_extract_host = self.mock_object( @@ -1345,8 +1348,9 @@ class NetAppFileStorageLibraryTestCase(test.TestCase): internal_share['share_server'] = copy.deepcopy(fake.SHARE_SERVER) mock_dm_constr.assert_called_once() - mock_get_vserver.assert_has_calls([mock.call(fake_parent_share), - mock.call(internal_share)]) + mock_get_vserver.assert_called_once_with(fake_parent_share) + mock_get_vserver_from_share_server.assert_called_once_with( + fake_share_server) mock_extract_host.assert_has_calls([ mock.call(fake_parent_share['host'], level='backend_name'), mock.call(internal_share['host'], level='backend_name')])