summaryrefslogtreecommitdiff
path: root/openstackclient/identity
diff options
context:
space:
mode:
authorSteve Martinelli <stevemar@ca.ibm.com>2014-11-19 15:31:25 -0500
committerSteve Martinelli <stevemar@ca.ibm.com>2014-12-01 22:36:54 +0000
commit4b239eea4290522a24ed4242d983dc69ff7e382e (patch)
tree24f9dc566ebc17af306357abe847d7de21a10bd8 /openstackclient/identity
parent04d30c1855f1229d986c7ad3bdae43a2b2d38990 (diff)
downloadpython-openstackclient-4b239eea4290522a24ed4242d983dc69ff7e382e.tar.gz
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
Diffstat (limited to 'openstackclient/identity')
-rw-r--r--openstackclient/identity/v3/group.py16
-rw-r--r--openstackclient/identity/v3/project.py17
-rw-r--r--openstackclient/identity/v3/user.py17
3 files changed, 41 insertions, 9 deletions
diff --git a/openstackclient/identity/v3/group.py b/openstackclient/identity/v3/group.py
index 14838bba..5d3cf642 100644
--- a/openstackclient/identity/v3/group.py
+++ b/openstackclient/identity/v3/group.py
@@ -169,12 +169,26 @@ class DeleteGroup(command.Command):
'group',
metavar='<group>',
help='Name or ID of group to delete')
+ parser.add_argument(
+ '--domain',
+ metavar='<domain>',
+ help='Domain where group resides (name or ID)',
+ )
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)', parsed_args)
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)
return
diff --git a/openstackclient/identity/v3/project.py b/openstackclient/identity/v3/project.py
index 3b0e92fd..1e3977ba 100644
--- a/openstackclient/identity/v3/project.py
+++ b/openstackclient/identity/v3/project.py
@@ -126,16 +126,25 @@ class DeleteProject(command.Command):
metavar='<project>',
help='Project to delete (name or ID)',
)
+ parser.add_argument(
+ '--domain',
+ metavar='<domain>',
+ help='Domain owning <project> (name or ID)',
+ )
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)', parsed_args)
identity_client = self.app.client_manager.identity
- project = utils.find_resource(
- identity_client.projects,
- parsed_args.project,
- )
+ if parsed_args.domain:
+ domain = common.find_domain(identity_client, parsed_args.domain)
+ 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)
return
diff --git a/openstackclient/identity/v3/user.py b/openstackclient/identity/v3/user.py
index 10ffce36..665dd4bb 100644
--- a/openstackclient/identity/v3/user.py
+++ b/openstackclient/identity/v3/user.py
@@ -148,16 +148,25 @@ class DeleteUser(command.Command):
metavar='<user>',
help='User to delete (name or ID)',
)
+ parser.add_argument(
+ '--domain',
+ metavar='<domain>',
+ help='Domain owning <user> (name or ID)',
+ )
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)', parsed_args)
identity_client = self.app.client_manager.identity
- user = utils.find_resource(
- identity_client.users,
- parsed_args.user,
- )
+ if parsed_args.domain:
+ domain = common.find_domain(identity_client, parsed_args.domain)
+ 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)
return