Merge "Fix listing and removing roles from users."

This commit is contained in:
Zuul 2023-05-04 04:17:12 +00:00 committed by Gerrit Code Review
commit 2f405f1c39
3 changed files with 8 additions and 7 deletions
adjutantclient

@ -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