Skip to content

Commit 2663e16

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Add support for domains when deleting identity v3 resources"
2 parents 9eb757f + 4b239ee commit 2663e16

5 files changed

Lines changed: 55 additions & 9 deletions

File tree

‎doc/source/command-objects/project.rst‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ Delete an existing project
5858
os project delete
5959
<project>
6060
61+
.. option:: --domain <domain>
62+
63+
Domain owning :ref:`\<project\> <_project_delete-project>` (name or ID)
64+
65+
.. versionadded:: 3
66+
6167
.. _project_delete-project:
6268
.. describe:: <project>
6369

‎doc/source/command-objects/user.rst‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,14 @@ Delete user
8080
os user delete
8181
<user>
8282
83+
.. option:: --domain <domain>
84+
85+
Domain owning :ref:`\<user\> <_user_delete-user>` (name or ID)
86+
87+
.. versionadded:: 3
88+
89+
.. _user_delete-user:
90+
8391
.. describe:: <user>
8492

8593
User to delete (name or ID)

‎openstackclient/identity/v3/group.py‎

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,12 +169,26 @@ def get_parser(self, prog_name):
169169
'group',
170170
metavar='<group>',
171171
help='Name or ID of group to delete')
172+
parser.add_argument(
173+
'--domain',
174+
metavar='<domain>',
175+
help='Domain where group resides (name or ID)',
176+
)
172177
return parser
173178

174179
def take_action(self, parsed_args):
175180
self.log.debug('take_action(%s)', parsed_args)
176181
identity_client = self.app.client_manager.identity
177-
group = utils.find_resource(identity_client.groups, parsed_args.group)
182+
183+
if parsed_args.domain:
184+
domain = common.find_domain(identity_client, parsed_args.domain)
185+
group = utils.find_resource(identity_client.groups,
186+
parsed_args.group,
187+
domain_id=domain.id)
188+
else:
189+
group = utils.find_resource(identity_client.groups,
190+
parsed_args.group)
191+
178192
identity_client.groups.delete(group.id)
179193
return
180194

‎openstackclient/identity/v3/project.py‎

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,16 +126,25 @@ def get_parser(self, prog_name):
126126
metavar='<project>',
127127
help='Project to delete (name or ID)',
128128
)
129+
parser.add_argument(
130+
'--domain',
131+
metavar='<domain>',
132+
help='Domain owning <project> (name or ID)',
133+
)
129134
return parser
130135

131136
def take_action(self, parsed_args):
132137
self.log.debug('take_action(%s)', parsed_args)
133138
identity_client = self.app.client_manager.identity
134139

135-
project = utils.find_resource(
136-
identity_client.projects,
137-
parsed_args.project,
138-
)
140+
if parsed_args.domain:
141+
domain = common.find_domain(identity_client, parsed_args.domain)
142+
project = utils.find_resource(identity_client.projects,
143+
parsed_args.project,
144+
domain_id=domain.id)
145+
else:
146+
project = utils.find_resource(identity_client.projects,
147+
parsed_args.project)
139148

140149
identity_client.projects.delete(project.id)
141150
return

‎openstackclient/identity/v3/user.py‎

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,16 +148,25 @@ def get_parser(self, prog_name):
148148
metavar='<user>',
149149
help='User to delete (name or ID)',
150150
)
151+
parser.add_argument(
152+
'--domain',
153+
metavar='<domain>',
154+
help='Domain owning <user> (name or ID)',
155+
)
151156
return parser
152157

153158
def take_action(self, parsed_args):
154159
self.log.debug('take_action(%s)', parsed_args)
155160
identity_client = self.app.client_manager.identity
156161

157-
user = utils.find_resource(
158-
identity_client.users,
159-
parsed_args.user,
160-
)
162+
if parsed_args.domain:
163+
domain = common.find_domain(identity_client, parsed_args.domain)
164+
user = utils.find_resource(identity_client.users,
165+
parsed_args.user,
166+
domain_id=domain.id)
167+
else:
168+
user = utils.find_resource(identity_client.users,
169+
parsed_args.user)
161170

162171
identity_client.users.delete(user.id)
163172
return

0 commit comments

Comments
 (0)