awx-manage migrate failed on awx.main.migrations._dab_rbac
Please confirm the following
- [X] I agree to follow this project's code of conduct.
- [X] I have checked the current issues for duplicates.
- [X] I understand that AWX is open source software provided for free and that I might not receive a timely response.
- [X] I am NOT reporting a (potential) security vulnerability. (These should be emailed to
[email protected]instead.)
Bug Summary
awx upgrade from 21.13.0 to 24.6.1 failed. awx-manage migrate failed on awx.main.migrations._dab_rbac step
AWX version
from 21.13.0 to 24.6.1
Select the relevant components
- [ ] UI
- [ ] UI (tech preview)
- [ ] API
- [ ] Docs
- [ ] Collection
- [X] CLI
- [ ] Other
Installation method
kubernetes
Modifications
no
Ansible version
No response
Operating system
rhel9.4
Web browser
No response
Steps to reproduce
Upgrade from 21.13.0 to 24.6.1 awx-manage migrate
Expected results
full upgrade passed
Actual results
upgrade failed
Additional information
sh-5.1$ awx-manage migrate
2024-11-13 22:52:24,293 ERROR [-] ansible_base.resource_registry.apps RESOURCE_SERVER is not configured. Reverse sync will not be enabled.
2024-11-13 22:52:24,293 ERROR [-] ansible_base.resource_registry.apps RESOURCE_SERVER is not configured. Reverse sync will not be enabled.
2024-11-13 22:52:24,293 ERROR [-] ansible_base.resource_registry.apps RESOURCE_SERVER is not configured. Reverse sync will not be enabled.
Operations to perform:
Apply all migrations: auth, conf, contenttypes, dab_rbac, dab_resource_registry, main, oauth2_provider, sessions, sites, social_django, sso
Running migrations:
Applying main.0192_custom_roles...Adding content type 'main | hostmetricsummarymonthly'
Adding content type 'main | inventoryconstructedinventorymembership'
Adding content type 'main | receptoraddress'
2024-11-13 22:52:24,963 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Inventory Admin pk=RoleDefinition object (241) with 6 permissions
2024-11-13 22:52:24,969 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization Inventory Admin pk=RoleDefinition object (242) with 8 permissions
2024-11-13 22:52:24,974 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Inventory Use pk=RoleDefinition object (243) with 2 permissions
2024-11-13 22:52:24,979 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Inventory Adhoc pk=RoleDefinition object (244) with 2 permissions
2024-11-13 22:52:24,984 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Inventory Update pk=RoleDefinition object (245) with 2 permissions
2024-11-13 22:52:24,990 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Team Admin pk=RoleDefinition object (246) with 4 permissions
2024-11-13 22:52:24,994 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Team Member pk=RoleDefinition object (247) with 2 permissions
2024-11-13 22:52:25,000 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Project Admin pk=RoleDefinition object (248) with 5 permissions
2024-11-13 22:52:25,005 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization Project Admin pk=RoleDefinition object (249) with 7 permissions
2024-11-13 22:52:25,011 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Project Update pk=RoleDefinition object (250) with 2 permissions
2024-11-13 22:52:25,015 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Project Use pk=RoleDefinition object (251) with 2 permissions
2024-11-13 22:52:25,020 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition JobTemplate Admin pk=RoleDefinition object (252) with 4 permissions
2024-11-13 22:52:25,025 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization JobTemplate Admin pk=RoleDefinition object (253) with 5 permissions
2024-11-13 22:52:25,030 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition JobTemplate Execute pk=RoleDefinition object (254) with 2 permissions
2024-11-13 22:52:25,035 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Credential Admin pk=RoleDefinition object (255) with 4 permissions
2024-11-13 22:52:25,040 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization Credential Admin pk=RoleDefinition object (256) with 6 permissions
2024-11-13 22:52:25,045 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Credential Use pk=RoleDefinition object (257) with 2 permissions
2024-11-13 22:52:25,051 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization Member pk=RoleDefinition object (258) with 2 permissions
2024-11-13 22:52:25,057 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition InstanceGroup Admin pk=RoleDefinition object (259) with 4 permissions
2024-11-13 22:52:25,062 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition InstanceGroup Use pk=RoleDefinition object (260) with 2 permissions
2024-11-13 22:52:25,067 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition NotificationTemplate Admin pk=RoleDefinition object (261) with 3 permissions
2024-11-13 22:52:24,969 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization Inventory Admin pk=RoleDefinition object (242) with 8 permissions
2024-11-13 22:52:24,974 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Inventory Use pk=RoleDefinition object (243) with 2 permissions
2024-11-13 22:52:24,979 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Inventory Adhoc pk=RoleDefinition object (244) with 2 permissions
2024-11-13 22:52:24,984 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Inventory Update pk=RoleDefinition object (245) with 2 permissions
2024-11-13 22:52:24,990 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Team Admin pk=RoleDefinition object (246) with 4 permissions
2024-11-13 22:52:24,994 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Team Member pk=RoleDefinition object (247) with 2 permissions
2024-11-13 22:52:25,000 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Project Admin pk=RoleDefinition object (248) with 5 permissions
2024-11-13 22:52:25,005 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization Project Admin pk=RoleDefinition object (249) with 7 permissions
2024-11-13 22:52:25,011 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Project Update pk=RoleDefinition object (250) with 2 permissions
2024-11-13 22:52:25,015 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Project Use pk=RoleDefinition object (251) with 2 permissions
2024-11-13 22:52:25,020 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition JobTemplate Admin pk=RoleDefinition object (252) with 4 permissions
2024-11-13 22:52:25,025 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization JobTemplate Admin pk=RoleDefinition object (253) with 5 permissions
2024-11-13 22:52:25,030 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition JobTemplate Execute pk=RoleDefinition object (254) with 2 permissions
2024-11-13 22:52:25,035 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Credential Admin pk=RoleDefinition object (255) with 4 permissions
2024-11-13 22:52:25,040 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization Credential Admin pk=RoleDefinition object (256) with 6 permissions
2024-11-13 22:52:25,045 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Credential Use pk=RoleDefinition object (257) with 2 permissions
2024-11-13 22:52:25,051 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization Member pk=RoleDefinition object (258) with 2 permissions
2024-11-13 22:52:25,057 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition InstanceGroup Admin pk=RoleDefinition object (259) with 4 permissions
2024-11-13 22:52:25,062 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition InstanceGroup Use pk=RoleDefinition object (260) with 2 permissions
2024-11-13 22:52:25,067 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition NotificationTemplate Admin pk=RoleDefinition object (261) with 3 permissions
2024-11-13 22:52:25,072 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization NotificationTemplate Admin pk=RoleDefinition object (262) with 5 permissions
2024-11-13 22:52:25,078 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition ExecutionEnvironment Admin pk=RoleDefinition object (263) with 3 permissions
2024-11-13 22:52:25,083 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization ExecutionEnvironment Admin pk=RoleDefinition object (264) with 5 permissions
2024-11-13 22:52:25,089 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition WorkflowJobTemplate Admin pk=RoleDefinition object (265) with 5 permissions
2024-11-13 22:52:25,094 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization WorkflowJobTemplate Admin pk=RoleDefinition object (266) with 7 permissions
2024-11-13 22:52:25,099 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition WorkflowJobTemplate Execute pk=RoleDefinition object (267) with 2 permissions
2024-11-13 22:52:25,104 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition WorkflowJobTemplate Approve pk=RoleDefinition object (268) with 2 permissions
2024-11-13 22:52:25,109 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization Admin pk=RoleDefinition object (269) with 46 permissions
2024-11-13 22:52:25,114 INFO [-] awx.main.migrations._dab_rbac Created RoleDefinition Organization Audit pk=RoleDefinition object (270) with 10 permissions
Traceback (most recent call last):
File "/usr/bin/awx-manage", line 8, in
We could migrate successfully by changing main/migrations/_dab_rbac.py. We put all lines from line# 196 inside try block: try: object = object_cls.objects.get(pk=role.object_id) # WORKAROUND, role.content_object does not work in migrations f = object._meta.get_field(role.role_field) # should be ImplicitRoleField perm_list = get_permissions_for_role(f, children, apps) ..... except object_cls.DoesNotExist: object = None
Above change worked for us.
This seems like it may be possible if the existing Role objects had a reference to a deleted credential. This is likely something that might be reproducible in a unit test which would lead directly to merging such a fix.