From 495f213c433d6ab532d4ade30bdde1ce687fea02 Mon Sep 17 00:00:00 2001 From: Kiran Pawar Date: Mon, 9 Feb 2026 12:51:30 +0000 Subject: [PATCH] fix share server get migration progress When share server migration is completed, get migration progress query fails since source share server is deleted in Manila. However, Manila is able to return status i.e. 100% when queried using source share server. The manilaclient is fixed to handle this scenario. Closes-bug: #2068732 Change-Id: Ia4ac62e740ca6a2882fbeadc6b60ebea3edc1b5e Signed-off-by: Kiran Pawar --- manilaclient/osc/v2/share_servers.py | 5 ++--- manilaclient/tests/unit/osc/v2/test_share_servers.py | 9 +++++++++ ...progress-on-source-share-server-7ef327dcdedcfbd6.yaml | 5 +++++ 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 releasenotes/notes/bug-2068732-fix-migration-get-progress-on-source-share-server-7ef327dcdedcfbd6.yaml diff --git a/manilaclient/osc/v2/share_servers.py b/manilaclient/osc/v2/share_servers.py index 8db3e2bbe..6ed479f79 100644 --- a/manilaclient/osc/v2/share_servers.py +++ b/manilaclient/osc/v2/share_servers.py @@ -639,10 +639,9 @@ class ShareServerMigrationShow(command.ShowOne): def take_action(self, parsed_args): share_client = self.app.client_manager.share if share_client.api_version >= api_versions.APIVersion("2.57"): - share_server = osc_utils.find_resource( - share_client.share_servers, parsed_args.share_server + result = share_client.share_servers.migration_get_progress( + parsed_args.share_server ) - result = share_server.migration_get_progress() return self.dict2columns(result) else: raise exceptions.CommandError( diff --git a/manilaclient/tests/unit/osc/v2/test_share_servers.py b/manilaclient/tests/unit/osc/v2/test_share_servers.py index 77409107e..7ffd28a87 100644 --- a/manilaclient/tests/unit/osc/v2/test_share_servers.py +++ b/manilaclient/tests/unit/osc/v2/test_share_servers.py @@ -651,6 +651,11 @@ class TestShareServerMigrationShow(TestShareServer): ) self.share_networks_mock.get.return_value = self.new_share_network + migration_dict = { + 'total_progress': 'fake', + 'task_state': 'migration_in_progress', + 'destination_share_server_id': 'fake_id', + } self.share_server = manila_fakes.FakeShareServer.create_one_server( attrs={ 'status': 'migrating', @@ -659,6 +664,10 @@ class TestShareServerMigrationShow(TestShareServer): methods={'migration_get_progress': None}, ) self.servers_mock.get.return_value = self.share_server + share_client = self.app.client_manager.share + share_client.share_servers.migration_get_progress.return_value = ( + migration_dict + ) # Get the command objects to test self.cmd = osc_share_servers.ShareServerMigrationShow(self.app, None) diff --git a/releasenotes/notes/bug-2068732-fix-migration-get-progress-on-source-share-server-7ef327dcdedcfbd6.yaml b/releasenotes/notes/bug-2068732-fix-migration-get-progress-on-source-share-server-7ef327dcdedcfbd6.yaml new file mode 100644 index 000000000..fbe7711d3 --- /dev/null +++ b/releasenotes/notes/bug-2068732-fix-migration-get-progress-on-source-share-server-7ef327dcdedcfbd6.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixed an issue while getting share server migration progress for source + share server after migration is completed.