summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
authorStephen Finucane <sfinucan@redhat.com>2020-12-03 17:36:53 +0000
committerStephen Finucane <sfinucan@redhat.com>2021-01-12 17:08:54 +0000
commitdfa869ed1dbd54c76a9d7cd7d520f0d21064918d (patch)
treee21ae364a8188b5691421e785b3d2f7d2771055b /openstackclient/compute
parent8a164bb09c0801c3ffd2431d41c3e232388ab407 (diff)
downloadpython-openstackclient-dfa869ed1dbd54c76a9d7cd7d520f0d21064918d.tar.gz
compute: Improve 'server migration list' options
Improve both the '--user' and '--project' options to allow names as well as UUIDs. There's no release note included since this entire command was added in change I15b4a5aca8d0dee59dd293e7b1c7272cdfbeea20, which hasn't been included in a release yet. Change-Id: I7654f3ffc54d38d5cfb03d8d1b2f4dc4fb06fb3d Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/server.py31
1 files changed, 21 insertions, 10 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index aa4f2372..1e38869e 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -2369,21 +2369,21 @@ class ListMigration(command.Lister):
parser.add_argument(
'--project',
metavar='<project>',
- dest='project_id',
help=_(
- "Filter migrations by project (ID) "
+ "Filter migrations by project (name or ID) "
"(supported with --os-compute-api-version 2.80 or above)"
),
)
+ identity_common.add_project_domain_option_to_parser(parser)
parser.add_argument(
'--user',
metavar='<user>',
- dest='user_id',
help=_(
- "Filter migrations by user (ID) "
+ "Filter migrations by user (name or ID) "
"(supported with --os-compute-api-version 2.80 or above)"
),
)
+ identity_common.add_user_domain_option_to_parser(parser)
return parser
def print_migrations(self, parsed_args, compute_client, migrations):
@@ -2402,9 +2402,9 @@ class ListMigration(command.Lister):
columns.insert(len(columns) - 2, "Type")
if compute_client.api_version >= api_versions.APIVersion("2.80"):
- if parsed_args.project_id:
+ if parsed_args.project:
columns.insert(len(columns) - 2, "Project")
- if parsed_args.user_id:
+ if parsed_args.user:
columns.insert(len(columns) - 2, "User")
return (
@@ -2414,6 +2414,7 @@ class ListMigration(command.Lister):
def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute
+ identity_client = self.app.client_manager.identity
search_opts = {
'host': parsed_args.host,
@@ -2469,23 +2470,33 @@ class ListMigration(command.Lister):
raise exceptions.CommandError(msg)
search_opts['changes_before'] = parsed_args.changes_before
- if parsed_args.project_id:
+ if parsed_args.project:
if compute_client.api_version < api_versions.APIVersion('2.80'):
msg = _(
'--os-compute-api-version 2.80 or greater is required to '
'support the --project option'
)
raise exceptions.CommandError(msg)
- search_opts['project_id'] = parsed_args.project_id
- if parsed_args.user_id:
+ search_opts['project_id'] = identity_common.find_project(
+ identity_client,
+ parsed_args.project,
+ parsed_args.project_domain,
+ ).id
+
+ if parsed_args.user:
if compute_client.api_version < api_versions.APIVersion('2.80'):
msg = _(
'--os-compute-api-version 2.80 or greater is required to '
'support the --user option'
)
raise exceptions.CommandError(msg)
- search_opts['user_id'] = parsed_args.user_id
+
+ search_opts['user_id'] = identity_common.find_user(
+ identity_client,
+ parsed_args.user,
+ parsed_args.user_domain,
+ ).id
migrations = compute_client.migrations.list(**search_opts)