diff options
| author | Zuul <zuul@review.opendev.org> | 2020-11-02 12:06:41 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2020-11-02 12:06:41 +0000 |
| commit | 7fdbc6b8af681fc48bd3a78822ffab52c29329ac (patch) | |
| tree | 2e6c2b575ff5d0dda5446f0e5e142b1261fae0b2 /openstackclient/compute/v2 | |
| parent | 987af4e390e492650cdd441692f56f1884e04177 (diff) | |
| parent | 98a0016cfa1d39bcc37144f0c7700e9a9d6b2c0b (diff) | |
| download | python-openstackclient-7fdbc6b8af681fc48bd3a78822ffab52c29329ac.tar.gz | |
Merge "Add support for 'keypairs list --user' parameter"
Diffstat (limited to 'openstackclient/compute/v2')
| -rw-r--r-- | openstackclient/compute/v2/keypair.py | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/openstackclient/compute/v2/keypair.py b/openstackclient/compute/v2/keypair.py index 6affaca3..ae653e76 100644 --- a/openstackclient/compute/v2/keypair.py +++ b/openstackclient/compute/v2/keypair.py @@ -26,6 +26,7 @@ from osc_lib import exceptions from osc_lib import utils from openstackclient.i18n import _ +from openstackclient.identity import common as identity_common LOG = logging.getLogger(__name__) @@ -163,13 +164,45 @@ class DeleteKeypair(command.Command): class ListKeypair(command.Lister): _description = _("List key fingerprints") + def get_parser(self, prog_name): + parser = super().get_parser(prog_name) + parser.add_argument( + '--user', + metavar='<user>', + help=_( + 'Show keypairs for another user (admin only) (name or ID). ' + 'Requires ``--os-compute-api-version`` 2.10 or greater.' + ), + ) + identity_common.add_user_domain_option_to_parser(parser) + return parser + def take_action(self, parsed_args): compute_client = self.app.client_manager.compute + identity_client = self.app.client_manager.identity + + kwargs = {} + + if parsed_args.user: + if compute_client.api_version < api_versions.APIVersion('2.10'): + msg = _( + '--os-compute-api-version 2.10 or greater is required to ' + 'support the --user option' + ) + raise exceptions.CommandError(msg) + + kwargs['user_id'] = identity_common.find_user( + identity_client, + parsed_args.user, + parsed_args.user_domain, + ).id + + data = compute_client.keypairs.list(**kwargs) + columns = ( "Name", "Fingerprint" ) - data = compute_client.keypairs.list() if compute_client.api_version >= api_versions.APIVersion('2.2'): columns += ("Type", ) |
