From b33cdec92ab3707886c12f49e9db27981114b35d Mon Sep 17 00:00:00 2001 From: Sean Perry Date: Wed, 23 Sep 2015 10:39:13 -0700 Subject: Mark arguments for 'credential' commands as required According to the [1], 'user_id', 'type', and 'blob' are all required arguments for 'credential set' but the code treats them as optional. Set the 'required' flag and remove logic supporting missing arguments. [1]: https://github.com/openstack/keystone-specs/blob/master/api/v3/identity-api-v3.rst#credentials-v3credentials "spec" Change-Id: I597c9616ad744385fc6dd92379feb03daec54458 Closes-Bug: #1418837 --- openstackclient/identity/v3/credential.py | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'openstackclient/identity') diff --git a/openstackclient/identity/v3/credential.py b/openstackclient/identity/v3/credential.py index dbd73e2e..f22092d4 100644 --- a/openstackclient/identity/v3/credential.py +++ b/openstackclient/identity/v3/credential.py @@ -17,7 +17,6 @@ import logging import six -import sys from cliff import command from cliff import lister @@ -130,17 +129,20 @@ class SetCredential(command.Command): parser.add_argument( '--user', metavar='', + required=True, help='Name or ID of user that owns the credential', ) parser.add_argument( '--type', metavar='', choices=['ec2', 'cert'], + required=True, help='New credential type', ) parser.add_argument( '--data', metavar='', + required=True, help='New credential data', ) parser.add_argument( @@ -153,25 +155,22 @@ class SetCredential(command.Command): @utils.log_method(log) def take_action(self, parsed_args): identity_client = self.app.client_manager.identity - kwargs = {} - if parsed_args.user: - user_id = utils.find_resource(identity_client.users, - parsed_args.user).id - if user_id: - kwargs['user'] = user_id - if parsed_args.type: - kwargs['type'] = parsed_args.type - if parsed_args.data: - kwargs['data'] = parsed_args.data + + user_id = utils.find_resource(identity_client.users, + parsed_args.user).id + if parsed_args.project: project = utils.find_resource(identity_client.projects, parsed_args.project).id - kwargs['project'] = project + else: + project = None + + identity_client.credentials.update(parsed_args.credential, + user=user_id, + type=parsed_args.type, + blob=parsed_args.data, + project=project) - if not kwargs: - sys.stdout.write("Credential not updated, no arguments present") - return - identity_client.credentials.update(parsed_args.credential, **kwargs) return -- cgit v1.2.1