diff options
| author | Steve Martinelli <stevemar@ca.ibm.com> | 2014-11-19 15:31:25 -0500 |
|---|---|---|
| committer | Steve Martinelli <stevemar@ca.ibm.com> | 2014-12-01 22:36:54 +0000 |
| commit | 4b239eea4290522a24ed4242d983dc69ff7e382e (patch) | |
| tree | 24f9dc566ebc17af306357abe847d7de21a10bd8 /openstackclient/identity | |
| parent | 04d30c1855f1229d986c7ad3bdae43a2b2d38990 (diff) | |
| download | python-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.py | 16 | ||||
| -rw-r--r-- | openstackclient/identity/v3/project.py | 17 | ||||
| -rw-r--r-- | openstackclient/identity/v3/user.py | 17 |
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 |
