summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Finucane <sfinucan@redhat.com>2020-10-13 14:47:25 +0100
committerStephen Finucane <sfinucan@redhat.com>2020-10-13 15:14:09 +0100
commitbf35f04682fa2bdd00a7cff7b9a963b4ffb80eff (patch)
treebe831e7089f46639fc9dc69b62f3b0d5d7a29ae2
parent5fd399eabaff7c7994d4ba79c7e9d77131436c5d (diff)
downloadpython-openstackclient-bf35f04682fa2bdd00a7cff7b9a963b4ffb80eff.tar.gz
Add 'openstack server migration list --type' option
Another gap with novaclient closed. Change-Id: Id3ca95ceda6f438fa72496ab9ab15ac09bb64fa5 Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
-rw-r--r--openstackclient/compute/v2/server.py19
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py2
2 files changed, 17 insertions, 4 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 2fa0c524..dec6eb62 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -1890,6 +1890,14 @@ class ListMigration(command.Command):
help=_('Filter migrations by status')
)
parser.add_argument(
+ '--type',
+ metavar='<type>',
+ choices=[
+ 'evacuation', 'live-migration', 'cold-migration', 'resize',
+ ],
+ help=_('Filter migrations by type'),
+ )
+ parser.add_argument(
'--marker',
metavar='<marker>',
help=_(
@@ -1964,10 +1972,6 @@ class ListMigration(command.Command):
if compute_client.api_version >= api_versions.APIVersion("2.59"):
columns.insert(0, "UUID")
- # TODO(brinzhang): It also suppports filter migrations by type
- # since 2.1. https://review.opendev.org/#/c/675117 supported
- # filtering the migrations by 'migration_type' and 'source_compute'
- # in novaclient, that will be added in OSC by follow-up.
if compute_client.api_version >= api_versions.APIVersion("2.23"):
columns.insert(0, "Id")
columns.insert(len(columns) - 2, "Type")
@@ -1992,6 +1996,13 @@ class ListMigration(command.Command):
'status': parsed_args.status,
}
+ if parsed_args.type:
+ migration_type = parsed_args.type
+ # we're using an alias because the default value is confusing
+ if migration_type == 'cold-migration':
+ migration_type = 'migration'
+ search_opts['type'] = migration_type
+
if parsed_args.marker:
if compute_client.api_version < api_versions.APIVersion('2.59'):
msg = _(
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index 4b000180..51a3beb5 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -3781,6 +3781,7 @@ class TestListMigration(TestServer):
'--server', 'server1',
'--host', 'host1',
'--status', 'migrating',
+ '--type', 'cold-migration',
]
verifylist = [
('server', 'server1'),
@@ -3795,6 +3796,7 @@ class TestListMigration(TestServer):
'status': 'migrating',
'host': 'host1',
'server': 'server1',
+ 'type': 'migration',
}
self.migrations_mock.list.assert_called_with(**kwargs)