Skip to content

Commit b2d1f92

Browse files
committed
Improve debugging for permission NotFound event
1 parent 892a71f commit b2d1f92

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

ansible_base/rbac/managed.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,16 @@ def get_or_create(self, apps):
5959
if created:
6060
permissions = self.get_permissions(apps)
6161
permission_cls = apps.get_model('dab_rbac', 'DABPermission')
62-
perm_list = [permission_cls.objects.get(codename=str_perm) for str_perm in permissions]
62+
perm_list = []
63+
for str_perm in permissions:
64+
try:
65+
permission_cls.objects.get(codename=str_perm)
66+
except permission_cls.DoesNotExist:
67+
# Better error handling for debugging
68+
db_codenames = list(permission_cls.objects.values_list('codename', flat=True))
69+
raise permission_cls.DoesNotExist(
70+
f'Permission codename {str_perm} does not exist. Manged role {self} expected: {permissions}\n Database permissions: {db_codenames}'
71+
)
6372
rd.permissions.add(*perm_list)
6473
logger.info(f'Created {self.shortname} managed role definition, name={self.name}')
6574
logger.debug(f'Data of {self.name} role definition: {defaults}')

0 commit comments

Comments
 (0)