Merge "Fix listing and removing roles from users."
This commit is contained in:
commit
2f405f1c39
@ -198,12 +198,14 @@ class BaseManager(HookableMixin):
|
|||||||
else:
|
else:
|
||||||
return self.resource_class(self, body)
|
return self.resource_class(self, body)
|
||||||
|
|
||||||
def _delete(self, url):
|
def _delete(self, url, json=None):
|
||||||
"""Delete an object.
|
"""Delete an object.
|
||||||
|
|
||||||
:param url: a partial URL, e.g., '/servers/my-server'
|
:param url: a partial URL, e.g., '/servers/my-server'
|
||||||
|
:param json: data that will be encoded as JSON and sent with the
|
||||||
|
DELETE request.
|
||||||
"""
|
"""
|
||||||
return self.client.delete(url)
|
return self.client.delete(url, json=json)
|
||||||
|
|
||||||
|
|
||||||
class ManagerWithFind(BaseManager, metaclass=abc.ABCMeta):
|
class ManagerWithFind(BaseManager, metaclass=abc.ABCMeta):
|
||||||
|
@ -171,10 +171,8 @@ class UserRoleList(command.Lister):
|
|||||||
client = self.app.client_manager.admin_logic
|
client = self.app.client_manager.admin_logic
|
||||||
|
|
||||||
user = utils.find_resource(client.users, parsed_args.user)
|
user = utils.find_resource(client.users, parsed_args.user)
|
||||||
kwargs = {'user': user.id}
|
|
||||||
roles = [[role.id, role.name] for role
|
return ['name'], [[role] for role in user.roles]
|
||||||
in client.user_roles.list(**kwargs)]
|
|
||||||
return ['id', 'name'], roles
|
|
||||||
|
|
||||||
|
|
||||||
class ManageableRolesList(command.Lister):
|
class ManageableRolesList(command.Lister):
|
||||||
|
@ -87,6 +87,7 @@ class UserRoleManager(base.BaseManager):
|
|||||||
|
|
||||||
def remove(self, user_id, role=None, roles=None):
|
def remove(self, user_id, role=None, roles=None):
|
||||||
"""Remove a role or roles from a user"""
|
"""Remove a role or roles from a user"""
|
||||||
|
|
||||||
if role:
|
if role:
|
||||||
params = {
|
params = {
|
||||||
'roles': [role]
|
'roles': [role]
|
||||||
@ -99,7 +100,7 @@ class UserRoleManager(base.BaseManager):
|
|||||||
route = '/openstack/users/%s/roles'
|
route = '/openstack/users/%s/roles'
|
||||||
url = route % (user_id)
|
url = route % (user_id)
|
||||||
try:
|
try:
|
||||||
self._delete(url, json=params, response_key=None)
|
self._delete(url, json=params)
|
||||||
except exc.HTTPBadRequest as e:
|
except exc.HTTPBadRequest as e:
|
||||||
print(e.message)
|
print(e.message)
|
||||||
return False
|
return False
|
||||||
|
Loading…
x
Reference in New Issue
Block a user