summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/scripts/ig-hotfix/test3.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/tools/scripts/ig-hotfix/test3.py b/tools/scripts/ig-hotfix/test3.py
new file mode 100644
index 0000000000..2bf17d705e
--- /dev/null
+++ b/tools/scripts/ig-hotfix/test3.py
@@ -0,0 +1,28 @@
+from django.db import connection
+from awx.main.models import InstanceGroup
+
+InstanceGroup.objects.filter(name__in=('green', 'yellow', 'red', 'blue')).delete()
+
+green = InstanceGroup.objects.create(name='green')
+red = InstanceGroup.objects.create(name='red')
+yellow = InstanceGroup.objects.create(name='yellow')
+blue = InstanceGroup.objects.create(name='blue')
+
+for ig in InstanceGroup.objects.all():
+ print((ig.id, ig.name, ig.use_role_id))
+
+with connection.cursor() as cursor:
+ cursor.execute("ALTER TABLE main_instancegroup DROP CONSTRAINT main_instancegroup_use_role_id_48ea7ecc_fk_main_rbac_roles_id")
+
+ cursor.execute(f"UPDATE main_rbac_roles SET object_id = NULL WHERE id = {red.use_role_id}")
+ cursor.execute(f"DELETE FROM main_rbac_roles_parents WHERE from_role_id = {blue.use_role_id} OR to_role_id = {blue.use_role_id}")
+ cursor.execute(f"DELETE FROM main_rbac_role_ancestors WHERE ancestor_id = {blue.use_role_id} OR descendent_id = {blue.use_role_id}")
+ cursor.execute(f"DELETE FROM main_rbac_roles WHERE id = {blue.use_role_id}")
+ cursor.execute("UPDATE main_instancegroup SET use_role_id = NULL WHERE name = 'red'")
+ cursor.execute(f"UPDATE main_instancegroup SET use_role_id = {green.use_role_id} WHERE name = 'yellow'")
+
+ cursor.execute("ALTER TABLE main_instancegroup ADD CONSTRAINT main_instancegroup_use_role_id_48ea7ecc_fk_main_rbac_roles_id FOREIGN KEY (use_role_id) REFERENCES public.main_rbac_roles(id) DEFERRABLE INITIALLY DEFERRED NOT VALID")
+
+print("=====================================")
+for ig in InstanceGroup.objects.all():
+ print((ig.id, ig.name, ig.use_role_id))