Add methods for user and group interactions
* Add user to group * Contains user in group * Remove user from group Change-Id: If5219fa9d4761d7b97950c39556b3e1b8aab6517
This commit is contained in:
parent
674dd48ad9
commit
9dbf46b837
@ -25,6 +25,84 @@ from cliff import show
|
|||||||
from openstackclient.common import utils
|
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):
|
class CreateGroup(show.ShowOne):
|
||||||
"""Create group command"""
|
"""Create group command"""
|
||||||
|
|
||||||
@ -117,6 +195,45 @@ class ListGroup(lister.Lister):
|
|||||||
) for s in data))
|
) 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):
|
class SetGroup(command.Command):
|
||||||
"""Set group command"""
|
"""Set group command"""
|
||||||
|
|
||||||
|
@ -90,9 +90,12 @@ openstack.identity.v3 =
|
|||||||
endpoint_show = openstackclient.identity.v3.endpoint:ShowEndpoint
|
endpoint_show = openstackclient.identity.v3.endpoint:ShowEndpoint
|
||||||
endpoint_list = openstackclient.identity.v3.endpoint:ListEndpoint
|
endpoint_list = openstackclient.identity.v3.endpoint:ListEndpoint
|
||||||
|
|
||||||
|
group_add_user = openstackclient.identity.v3.group:AddUserToGroup
|
||||||
|
group_contains_user = openstackclient.identity.v3.group:CheckUserInGroup
|
||||||
group_create = openstackclient.identity.v3.group:CreateGroup
|
group_create = openstackclient.identity.v3.group:CreateGroup
|
||||||
group_delete = openstackclient.identity.v3.group:DeleteGroup
|
group_delete = openstackclient.identity.v3.group:DeleteGroup
|
||||||
group_list = openstackclient.identity.v3.group:ListGroup
|
group_list = openstackclient.identity.v3.group:ListGroup
|
||||||
|
group_remove_user = openstackclient.identity.v3.group:RemoveUserFromGroup
|
||||||
group_set = openstackclient.identity.v3.group:SetGroup
|
group_set = openstackclient.identity.v3.group:SetGroup
|
||||||
group_show = openstackclient.identity.v3.group:ShowGroup
|
group_show = openstackclient.identity.v3.group:ShowGroup
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user