Add support for domains when deleting identity v3 resources
Currently, only deleting via IDs is possible for groups, projects and users. We should have an optional --domain argument that allows for a name to be specified for the resource. (Since these are all namespaced by domains). Change-Id: I18ace3db85a3969f0b97678d432d6f8368baa9cd
This commit is contained in:
parent
04d30c1855
commit
4b239eea42
@ -58,6 +58,12 @@ Delete an existing project
|
|||||||
os project delete
|
os project delete
|
||||||
<project>
|
<project>
|
||||||
|
|
||||||
|
.. option:: --domain <domain>
|
||||||
|
|
||||||
|
Domain owning :ref:`\<project\> <_project_delete-project>` (name or ID)
|
||||||
|
|
||||||
|
.. versionadded:: 3
|
||||||
|
|
||||||
.. _project_delete-project:
|
.. _project_delete-project:
|
||||||
.. describe:: <project>
|
.. describe:: <project>
|
||||||
|
|
||||||
|
@ -80,6 +80,14 @@ Delete user
|
|||||||
os user delete
|
os user delete
|
||||||
<user>
|
<user>
|
||||||
|
|
||||||
|
.. option:: --domain <domain>
|
||||||
|
|
||||||
|
Domain owning :ref:`\<user\> <_user_delete-user>` (name or ID)
|
||||||
|
|
||||||
|
.. versionadded:: 3
|
||||||
|
|
||||||
|
.. _user_delete-user:
|
||||||
|
|
||||||
.. describe:: <user>
|
.. describe:: <user>
|
||||||
|
|
||||||
User to delete (name or ID)
|
User to delete (name or ID)
|
||||||
|
@ -169,12 +169,26 @@ class DeleteGroup(command.Command):
|
|||||||
'group',
|
'group',
|
||||||
metavar='<group>',
|
metavar='<group>',
|
||||||
help='Name or ID of group to delete')
|
help='Name or ID of group to delete')
|
||||||
|
parser.add_argument(
|
||||||
|
'--domain',
|
||||||
|
metavar='<domain>',
|
||||||
|
help='Domain where group resides (name or ID)',
|
||||||
|
)
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
self.log.debug('take_action(%s)', parsed_args)
|
self.log.debug('take_action(%s)', parsed_args)
|
||||||
identity_client = self.app.client_manager.identity
|
identity_client = self.app.client_manager.identity
|
||||||
group = utils.find_resource(identity_client.groups, parsed_args.group)
|
|
||||||
|
if parsed_args.domain:
|
||||||
|
domain = common.find_domain(identity_client, parsed_args.domain)
|
||||||
|
group = utils.find_resource(identity_client.groups,
|
||||||
|
parsed_args.group,
|
||||||
|
domain_id=domain.id)
|
||||||
|
else:
|
||||||
|
group = utils.find_resource(identity_client.groups,
|
||||||
|
parsed_args.group)
|
||||||
|
|
||||||
identity_client.groups.delete(group.id)
|
identity_client.groups.delete(group.id)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -126,16 +126,25 @@ class DeleteProject(command.Command):
|
|||||||
metavar='<project>',
|
metavar='<project>',
|
||||||
help='Project to delete (name or ID)',
|
help='Project to delete (name or ID)',
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--domain',
|
||||||
|
metavar='<domain>',
|
||||||
|
help='Domain owning <project> (name or ID)',
|
||||||
|
)
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
self.log.debug('take_action(%s)', parsed_args)
|
self.log.debug('take_action(%s)', parsed_args)
|
||||||
identity_client = self.app.client_manager.identity
|
identity_client = self.app.client_manager.identity
|
||||||
|
|
||||||
project = utils.find_resource(
|
if parsed_args.domain:
|
||||||
identity_client.projects,
|
domain = common.find_domain(identity_client, parsed_args.domain)
|
||||||
parsed_args.project,
|
project = utils.find_resource(identity_client.projects,
|
||||||
)
|
parsed_args.project,
|
||||||
|
domain_id=domain.id)
|
||||||
|
else:
|
||||||
|
project = utils.find_resource(identity_client.projects,
|
||||||
|
parsed_args.project)
|
||||||
|
|
||||||
identity_client.projects.delete(project.id)
|
identity_client.projects.delete(project.id)
|
||||||
return
|
return
|
||||||
|
@ -148,16 +148,25 @@ class DeleteUser(command.Command):
|
|||||||
metavar='<user>',
|
metavar='<user>',
|
||||||
help='User to delete (name or ID)',
|
help='User to delete (name or ID)',
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--domain',
|
||||||
|
metavar='<domain>',
|
||||||
|
help='Domain owning <user> (name or ID)',
|
||||||
|
)
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
self.log.debug('take_action(%s)', parsed_args)
|
self.log.debug('take_action(%s)', parsed_args)
|
||||||
identity_client = self.app.client_manager.identity
|
identity_client = self.app.client_manager.identity
|
||||||
|
|
||||||
user = utils.find_resource(
|
if parsed_args.domain:
|
||||||
identity_client.users,
|
domain = common.find_domain(identity_client, parsed_args.domain)
|
||||||
parsed_args.user,
|
user = utils.find_resource(identity_client.users,
|
||||||
)
|
parsed_args.user,
|
||||||
|
domain_id=domain.id)
|
||||||
|
else:
|
||||||
|
user = utils.find_resource(identity_client.users,
|
||||||
|
parsed_args.user)
|
||||||
|
|
||||||
identity_client.users.delete(user.id)
|
identity_client.users.delete(user.id)
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user