summaryrefslogtreecommitdiff
path: root/openstackclient/identity/v3/role.py
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2013-09-09 14:55:07 -0500
committerDean Troyer <dtroyer@gmail.com>2013-09-09 14:58:28 -0500
commit8898e020fb874871e4d120e686abac0a94afd392 (patch)
tree96ca294fa56a9e086299aa3281feb453eb72e4fe /openstackclient/identity/v3/role.py
parent7a0a7d67ed639cf664f02e1148c7b4a9348f4672 (diff)
downloadpython-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.py189
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)))