From dfa869ed1dbd54c76a9d7cd7d520f0d21064918d Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Thu, 3 Dec 2020 17:36:53 +0000 Subject: 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 --- openstackclient/compute/v2/server.py | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'openstackclient/compute') 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='', - 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='', - 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) -- cgit v1.2.1