2323import six
2424
2525from openstackclient .i18n import _
26+ from openstackclient .identity import common
2627
2728
2829LOG = logging .getLogger (__name__ )
@@ -43,7 +44,7 @@ def get_parser(self, prog_name):
4344 default = "cert" ,
4445 metavar = '<type>' ,
4546 choices = ['ec2' , 'cert' ],
46- help = _ ('New credential type' ),
47+ help = _ ('New credential type: cert, ec2 ' ),
4748 )
4849 parser .add_argument (
4950 'data' ,
@@ -112,10 +113,40 @@ def take_action(self, parsed_args):
112113class ListCredential (command .Lister ):
113114 _description = _ ("List credentials" )
114115
116+ def get_parser (self , prog_name ):
117+ parser = super (ListCredential , self ).get_parser (prog_name )
118+ parser .add_argument (
119+ '--user' ,
120+ metavar = '<user>' ,
121+ help = _ ('Filter credentials by <user> (name or ID)' ),
122+ )
123+ common .add_user_domain_option_to_parser (parser )
124+ parser .add_argument (
125+ '--type' ,
126+ metavar = '<type>' ,
127+ choices = ['ec2' , 'cert' ],
128+ help = _ ('Filter credentials by type: cert, ec2' ),
129+ )
130+ return parser
131+
115132 def take_action (self , parsed_args ):
133+ identity_client = self .app .client_manager .identity
134+
135+ kwargs = {}
136+ if parsed_args .user :
137+ user_id = common .find_user (
138+ identity_client ,
139+ parsed_args .user ,
140+ parsed_args .user_domain ,
141+ ).id
142+ kwargs ["user_id" ] = user_id
143+
144+ if parsed_args .type :
145+ kwargs ["type" ] = parsed_args .type
146+
116147 columns = ('ID' , 'Type' , 'User ID' , 'Blob' , 'Project ID' )
117148 column_headers = ('ID' , 'Type' , 'User ID' , 'Data' , 'Project ID' )
118- data = self .app .client_manager .identity .credentials .list ()
149+ data = self .app .client_manager .identity .credentials .list (** kwargs )
119150 return (column_headers ,
120151 (utils .get_item_properties (
121152 s , columns ,
@@ -144,7 +175,7 @@ def get_parser(self, prog_name):
144175 metavar = '<type>' ,
145176 choices = ['ec2' , 'cert' ],
146177 required = True ,
147- help = _ ('New credential type' ),
178+ help = _ ('New credential type: cert, ec2 ' ),
148179 )
149180 parser .add_argument (
150181 '--data' ,
0 commit comments