diff options
| author | Dean Troyer <dtroyer@gmail.com> | 2013-09-09 14:55:07 -0500 |
|---|---|---|
| committer | Dean Troyer <dtroyer@gmail.com> | 2013-09-09 14:58:28 -0500 |
| commit | 8898e020fb874871e4d120e686abac0a94afd392 (patch) | |
| tree | 96ca294fa56a9e086299aa3281feb453eb72e4fe /openstackclient/identity/v3/role.py | |
| parent | 7a0a7d67ed639cf664f02e1148c7b4a9348f4672 (diff) | |
| download | python-openstackclient-8898e020fb874871e4d120e686abac0a94afd392.tar.gz | |
Identity v3 tests
* Add project, user, role and service v3 tests
* Fix issues in commands with enable/disable
* Make commands and tests more consistent between versions
* Make formatting and comments more consistent
Change-Id: Id21e7a5abd7e421a7742f937861ec46b53095fc7
Diffstat (limited to 'openstackclient/identity/v3/role.py')
| -rw-r--r-- | openstackclient/identity/v3/role.py | 189 |
1 files changed, 132 insertions, 57 deletions
diff --git a/openstackclient/identity/v3/role.py b/openstackclient/identity/v3/role.py index 5403d4cb..05bdbbfc 100644 --- a/openstackclient/identity/v3/role.py +++ b/openstackclient/identity/v3/role.py @@ -53,7 +53,6 @@ class AddRole(command.Command): domain_or_project.add_argument( '--domain', metavar='<domain>', - default='default', help='Name or ID of domain associated with user or group', ) domain_or_project.add_argument( @@ -69,36 +68,69 @@ class AddRole(command.Command): if (not parsed_args.user and not parsed_args.domain and not parsed_args.group and not parsed_args.project): - sys.stderr.write("Role not added, no arguments present\n") return - role_id = utils.find_resource(identity_client.roles, - parsed_args.role).id + role = utils.find_resource( + identity_client.roles, + parsed_args.role, + ) if parsed_args.user and parsed_args.domain: - user = utils.find_resource(identity_client.users, - parsed_args.user) - domain = utils.find_resource(identity_client.domains, - parsed_args.domain) - identity_client.roles.grant(role_id, user=user, domain=domain) + user = utils.find_resource( + identity_client.users, + parsed_args.user, + ) + domain = utils.find_resource( + identity_client.domains, + parsed_args.domain, + ) + identity_client.roles.grant( + role.id, + user=user.id, + domain=domain.id, + ) elif parsed_args.user and parsed_args.project: - user = utils.find_resource(identity_client.users, - parsed_args.user) - project = utils.find_resource(identity_client.projects, - parsed_args.project) - identity_client.roles.grant(role_id, user=user, project=project) + user = utils.find_resource( + identity_client.users, + parsed_args.user, + ) + project = utils.find_resource( + identity_client.projects, + parsed_args.project, + ) + identity_client.roles.grant( + role.id, + user=user.id, + project=project.id, + ) elif parsed_args.group and parsed_args.domain: - group = utils.find_resource(identity_client.groups, - parsed_args.group) - domain = utils.find_resource(identity_client.domains, - parsed_args.domain) - identity_client.roles.grant(role_id, group=group, domain=domain) + group = utils.find_resource( + identity_client.groups, + parsed_args.group, + ) + domain = utils.find_resource( + identity_client.domains, + parsed_args.domain, + ) + identity_client.roles.grant( + role.id, + group=group.id, + domain=domain.id, + ) elif parsed_args.group and parsed_args.project: - group = utils.find_resource(identity_client.group, - parsed_args.group) - project = utils.find_resource(identity_client.projects, - parsed_args.project) - identity_client.roles.grant(role_id, group=group, project=project) + group = utils.find_resource( + identity_client.groups, + parsed_args.group, + ) + project = utils.find_resource( + identity_client.projects, + parsed_args.project, + ) + identity_client.roles.grant( + role.id, + group=group.id, + project=project.id, + ) else: sys.stderr.write("Role not added, incorrect set of arguments \ provided. See openstack --help for more details\n") @@ -122,6 +154,7 @@ class CreateRole(show.ShowOne): def take_action(self, parsed_args): self.log.debug('take_action(%s)' % parsed_args) identity_client = self.app.client_manager.identity + role = identity_client.roles.create(parsed_args.name) return zip(*sorted(six.iteritems(role._info))) @@ -144,9 +177,13 @@ class DeleteRole(command.Command): def take_action(self, parsed_args): self.log.debug('take_action(%s)' % parsed_args) identity_client = self.app.client_manager.identity - role_id = utils.find_resource(identity_client.roles, - parsed_args.role) - identity_client.roles.delete(role_id) + + role = utils.find_resource( + identity_client.roles, + parsed_args.role, + ) + + identity_client.roles.delete(role.id) return @@ -208,36 +245,69 @@ class RemoveRole(command.Command): if (not parsed_args.user and not parsed_args.domain and not parsed_args.group and not parsed_args.project): - sys.stdout.write("Role not updated, no arguments present\n") return - role_id = utils.find_resource(identity_client.roles, - parsed_args.role).id + role = utils.find_resource( + identity_client.roles, + parsed_args.role, + ) if parsed_args.user and parsed_args.domain: - user = utils.find_resource(identity_client.users, - parsed_args.user) - domain = utils.find_resource(identity_client.domains, - parsed_args.domain) - identity_client.roles.revoke(role_id, user=user, domain=domain) + user = utils.find_resource( + identity_client.users, + parsed_args.user, + ) + domain = utils.find_resource( + identity_client.domains, + parsed_args.domain, + ) + identity_client.roles.revoke( + role.id, + user=user.id, + domain=domain.id, + ) elif parsed_args.user and parsed_args.project: - user = utils.find_resource(identity_client.users, - parsed_args.user) - project = utils.find_resource(identity_client.projects, - parsed_args.project) - identity_client.roles.revoke(role_id, user=user, project=project) - elif parsed_args.group and parsed_args.project: - group = utils.find_resource(identity_client.group, - parsed_args.group) - project = utils.find_resource(identity_client.projects, - parsed_args.project) - identity_client.roles.revoke(role_id, group=group, project=project) + user = utils.find_resource( + identity_client.users, + parsed_args.user, + ) + project = utils.find_resource( + identity_client.projects, + parsed_args.project, + ) + identity_client.roles.revoke( + role.id, + user=user.id, + project=project.id, + ) elif parsed_args.group and parsed_args.domain: - group = utils.find_resource(identity_client.group, - parsed_args.group) - domain = utils.find_resource(identity_client.domains, - parsed_args.domain) - identity_client.roles.revoke(role_id, group=group, domain=domain) + group = utils.find_resource( + identity_client.groups, + parsed_args.group, + ) + domain = utils.find_resource( + identity_client.domains, + parsed_args.domain, + ) + identity_client.roles.revoke( + role.id, + group=group.id, + domain=domain.id, + ) + elif parsed_args.group and parsed_args.project: + group = utils.find_resource( + identity_client.groups, + parsed_args.group, + ) + project = utils.find_resource( + identity_client.projects, + parsed_args.project, + ) + identity_client.roles.revoke( + role.id, + group=group.id, + project=project.id, + ) else: sys.stderr.write("Role not removed, incorrect set of arguments \ provided. See openstack --help for more details\n") @@ -266,14 +336,16 @@ class SetRole(command.Command): def take_action(self, parsed_args): self.log.debug('take_action(%s)' % parsed_args) identity_client = self.app.client_manager.identity - role_id = utils.find_resource(identity_client.roles, - parsed_args.role) if not parsed_args.name: - sys.stderr.write("Role not updated, no arguments present") return - identity_client.roles.update(role_id, parsed_args.name) + role = utils.find_resource( + identity_client.roles, + parsed_args.role, + ) + + identity_client.roles.update(role.id, name=parsed_args.name) return @@ -294,7 +366,10 @@ class ShowRole(show.ShowOne): def take_action(self, parsed_args): self.log.debug('take_action(%s)' % parsed_args) identity_client = self.app.client_manager.identity - role = utils.find_resource(identity_client.roles, - parsed_args.role) + + role = utils.find_resource( + identity_client.roles, + parsed_args.role, + ) return zip(*sorted(six.iteritems(role._info))) |
