diff options
| author | zhanghongtao <zhanghongtao0826@126.com> | 2017-07-25 15:48:27 +0800 |
|---|---|---|
| committer | Dean Troyer <dtroyer@gmail.com> | 2017-07-25 09:56:50 -0500 |
| commit | 470a1f1acfe261357fc3125b2db3bc6ec10c654e (patch) | |
| tree | efe4dd9a783784696d11c7add1f02ab9f2d7b1d8 /openstackclient/identity | |
| parent | ad21588b20bba71da5d0d6bd88aa2530d656a9da (diff) | |
| download | python-openstackclient-470a1f1acfe261357fc3125b2db3bc6ec10c654e.tar.gz | |
Add optional parameter "user_id" and "type" to list credentials
In keystone version 3.5, "type" optional attribute has been added
to list credentials. This patch add "user_id" and "type" optional
parameter in openstack client.
Change-Id: Ia09ee7c39204fdff2dfd7b9b606d888d007caac5
Diffstat (limited to 'openstackclient/identity')
| -rw-r--r-- | openstackclient/identity/v3/credential.py | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/openstackclient/identity/v3/credential.py b/openstackclient/identity/v3/credential.py index 2fd00626..79ef632c 100644 --- a/openstackclient/identity/v3/credential.py +++ b/openstackclient/identity/v3/credential.py @@ -23,6 +23,7 @@ from osc_lib import utils import six from openstackclient.i18n import _ +from openstackclient.identity import common LOG = logging.getLogger(__name__) @@ -43,7 +44,7 @@ class CreateCredential(command.ShowOne): default="cert", metavar='<type>', choices=['ec2', 'cert'], - help=_('New credential type'), + help=_('New credential type: cert, ec2'), ) parser.add_argument( 'data', @@ -112,10 +113,40 @@ class DeleteCredential(command.Command): class ListCredential(command.Lister): _description = _("List credentials") + def get_parser(self, prog_name): + parser = super(ListCredential, self).get_parser(prog_name) + parser.add_argument( + '--user', + metavar='<user>', + help=_('Filter credentials by <user> (name or ID)'), + ) + common.add_user_domain_option_to_parser(parser) + parser.add_argument( + '--type', + metavar='<type>', + choices=['ec2', 'cert'], + help=_('Filter credentials by type: cert, ec2'), + ) + return parser + def take_action(self, parsed_args): + identity_client = self.app.client_manager.identity + + kwargs = {} + if parsed_args.user: + user_id = common.find_user( + identity_client, + parsed_args.user, + parsed_args.user_domain, + ).id + kwargs["user_id"] = user_id + + if parsed_args.type: + kwargs["type"] = parsed_args.type + columns = ('ID', 'Type', 'User ID', 'Blob', 'Project ID') column_headers = ('ID', 'Type', 'User ID', 'Data', 'Project ID') - data = self.app.client_manager.identity.credentials.list() + data = self.app.client_manager.identity.credentials.list(**kwargs) return (column_headers, (utils.get_item_properties( s, columns, @@ -144,7 +175,7 @@ class SetCredential(command.Command): metavar='<type>', choices=['ec2', 'cert'], required=True, - help=_('New credential type'), + help=_('New credential type: cert, ec2'), ) parser.add_argument( '--data', |
