summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorSteve Martinelli <stevemar@ca.ibm.com>2013-06-10 09:19:54 -0500
committerSteve Martinelli <stevemar@ca.ibm.com>2013-07-02 08:58:55 -0500
commit9dbf46b8370becd1100837ee1868c7532e632b81 (patch)
tree96194da149d4d60748649b1fe10102f352bd7564 /openstackclient
parent674dd48ad9dd9609966e70d893e46c191245cdec (diff)
downloadpython-openstackclient-9dbf46b8370becd1100837ee1868c7532e632b81.tar.gz
Add methods for user and group interactions
* Add user to group * Contains user in group * Remove user from group Change-Id: If5219fa9d4761d7b97950c39556b3e1b8aab6517
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/identity/v3/group.py117
1 files changed, 117 insertions, 0 deletions
diff --git a/openstackclient/identity/v3/group.py b/openstackclient/identity/v3/group.py
index 0562b766..de4fe2d2 100644
--- a/openstackclient/identity/v3/group.py
+++ b/openstackclient/identity/v3/group.py
@@ -25,6 +25,84 @@ from cliff import show
from openstackclient.common import utils
+class AddUserToGroup(command.Command):
+ """Add user to group"""
+
+ api = 'identity'
+ log = logging.getLogger(__name__ + '.AddUserToGroup')
+
+ def get_parser(self, prog_name):
+ parser = super(AddUserToGroup, self).get_parser(prog_name)
+ parser.add_argument(
+ 'group',
+ metavar='<group>',
+ help='Group name or ID that user will be added to',
+ )
+ parser.add_argument(
+ 'user',
+ metavar='<user>',
+ help='User name or ID to add to group',
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ self.log.debug('take_action(%s)' % parsed_args)
+ identity_client = self.app.client_manager.identity
+
+ user_id = utils.find_resource(identity_client.users,
+ parsed_args.user).id
+ group_id = utils.find_resource(identity_client.groups,
+ parsed_args.group).id
+
+ try:
+ identity_client.users.add_to_group(user_id, group_id)
+ except Exception:
+ sys.stderr.write("%s not added to group %s\n" %
+ (parsed_args.user, parsed_args.group))
+ else:
+ sys.stdout.write("%s added to group %s\n" %
+ (parsed_args.user, parsed_args.group))
+
+
+class CheckUserInGroup(command.Command):
+ """Checks that user is in a specific group"""
+
+ api = 'identity'
+ log = logging.getLogger(__name__ + '.CheckUserInGroup')
+
+ def get_parser(self, prog_name):
+ parser = super(CheckUserInGroup, self).get_parser(prog_name)
+ parser.add_argument(
+ 'group',
+ metavar='<group>',
+ help='Group name or ID that user will be added to',
+ )
+ parser.add_argument(
+ 'user',
+ metavar='<user>',
+ help='User name or ID to add to group',
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ self.log.debug('take_action(%s)' % parsed_args)
+ identity_client = self.app.client_manager.identity
+
+ user_id = utils.find_resource(identity_client.users,
+ parsed_args.user).id
+ group_id = utils.find_resource(identity_client.groups,
+ parsed_args.group).id
+
+ try:
+ identity_client.users.check_in_group(user_id, group_id)
+ except Exception:
+ sys.stderr.write("%s not in group %s\n" %
+ (parsed_args.user, parsed_args.group))
+ else:
+ sys.stdout.write("%s in group %s\n" %
+ (parsed_args.user, parsed_args.group))
+
+
class CreateGroup(show.ShowOne):
"""Create group command"""
@@ -117,6 +195,45 @@ class ListGroup(lister.Lister):
) for s in data))
+class RemoveUserFromGroup(command.Command):
+ """Remove user to group"""
+
+ api = 'identity'
+ log = logging.getLogger(__name__ + '.RemoveUserFromGroup')
+
+ def get_parser(self, prog_name):
+ parser = super(RemoveUserFromGroup, self).get_parser(prog_name)
+ parser.add_argument(
+ 'group',
+ metavar='<group>',
+ help='Group name or ID that user will be removed from',
+ )
+ parser.add_argument(
+ 'user',
+ metavar='<user>',
+ help='User name or ID to remove from group',
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ self.log.debug('take_action(%s)' % parsed_args)
+ identity_client = self.app.client_manager.identity
+
+ user_id = utils.find_resource(identity_client.users,
+ parsed_args.user).id
+ group_id = utils.find_resource(identity_client.groups,
+ parsed_args.group).id
+
+ try:
+ identity_client.users.remove_from_group(user_id, group_id)
+ except Exception:
+ sys.stderr.write("%s not removed from group %s\n" %
+ (parsed_args.user, parsed_args.group))
+ else:
+ sys.stdout.write("%s removed from group %s\n" %
+ (parsed_args.user, parsed_args.group))
+
+
class SetGroup(command.Command):
"""Set group command"""