summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSami MAKKI <mail@samimakki.fr>2019-10-16 16:10:15 +0200
committerGrzegorz Grasza <xek@redhat.com>2021-07-15 08:56:40 +0000
commitacef9c60722edf78bcb85328ca5ab23331ab9273 (patch)
tree51251c7a7a466d667f400fd8f78a054403008bd8
parentc65455965aec303b55bc76388314a2b96a2bc12c (diff)
downloadkeystone-acef9c60722edf78bcb85328ca5ab23331ab9273.tar.gz
Remove group deletion for non-sql driver when removing domains.
As LDAP is now read-only, trying to remove it was throwing an error. We now only try to delete it when the driver is sql-based. Change-Id: I15b92b35b31d0e5d735a629e7c154ddd7bdda03d Closes-bug: #1848238 (cherry picked from commit d6977a0e9b3ed8ae80527d6f6ace67b687b46c60)
-rw-r--r--keystone/identity/core.py25
-rw-r--r--releasenotes/notes/bug-1848238-f6533644f7907358.yaml6
2 files changed, 19 insertions, 12 deletions
diff --git a/keystone/identity/core.py b/keystone/identity/core.py
index 73102ee5f..2d0c266db 100644
--- a/keystone/identity/core.py
+++ b/keystone/identity/core.py
@@ -500,20 +500,21 @@ class Manager(manager.Manager):
driver = self._select_identity_driver(domain_id)
- user_refs = self.list_users(domain_scope=domain_id)
- group_refs = self.list_groups(domain_scope=domain_id)
-
- for group in group_refs:
- # Cleanup any existing groups.
- try:
- self.delete_group(group['id'])
- except exception.GroupNotFound:
- LOG.debug(('Group %(groupid)s not found when deleting domain '
- 'contents for %(domainid)s, continuing with '
- 'cleanup.'),
- {'groupid': group['id'], 'domainid': domain_id})
+ if driver.is_sql:
+ group_refs = self.list_groups(domain_scope=domain_id)
+ for group in group_refs:
+ # Cleanup any existing groups.
+ try:
+ self.delete_group(group['id'])
+ except exception.GroupNotFound:
+ LOG.debug(('Group %(groupid)s not found when deleting '
+ 'domain contents for %(domainid)s, continuing '
+ 'with cleanup.'),
+ {'groupid': group['id'], 'domainid': domain_id})
# And finally, delete the users themselves
+ user_refs = self.list_users(domain_scope=domain_id)
+
for user in user_refs:
try:
if not driver.is_sql:
diff --git a/releasenotes/notes/bug-1848238-f6533644f7907358.yaml b/releasenotes/notes/bug-1848238-f6533644f7907358.yaml
new file mode 100644
index 000000000..db6f20754
--- /dev/null
+++ b/releasenotes/notes/bug-1848238-f6533644f7907358.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+ - |
+ [bug 1848238 <https://bugs.launchpad.net/keystone/+bug/1848238>]
+ Allow deleting a domain when using the ldap driver for a domain. There was
+ an attempt to delete the group on the ldap whereas this one is read-only.