mirror of
https://github.com/ansible/awx.git
synced 2026-02-15 18:20:00 -03:30
fixing deprecated_team.organization credential migration
This commit is contained in:
@@ -54,10 +54,6 @@ class AutoOneToOneField(models.OneToOneField):
|
|||||||
AutoSingleRelatedObjectDescriptor(related))
|
AutoSingleRelatedObjectDescriptor(related))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def resolve_role_field(obj, field):
|
def resolve_role_field(obj, field):
|
||||||
ret = []
|
ret = []
|
||||||
|
|
||||||
@@ -71,8 +67,8 @@ def resolve_role_field(obj, field):
|
|||||||
return []
|
return []
|
||||||
|
|
||||||
if len(field_components) == 1:
|
if len(field_components) == 1:
|
||||||
Role_ = get_current_apps().get_model('main', 'Role')
|
role_cls = str(get_current_apps().get_model('main', 'Role'))
|
||||||
if type(obj) is not Role_:
|
if not str(type(obj)) == role_cls:
|
||||||
raise Exception(smart_text('{} refers to a {}, not a Role'.format(field, type(obj))))
|
raise Exception(smart_text('{} refers to a {}, not a Role'.format(field, type(obj))))
|
||||||
ret.append(obj.id)
|
ret.append(obj.id)
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ import logging
|
|||||||
from time import time
|
from time import time
|
||||||
|
|
||||||
from django.utils.encoding import smart_text
|
from django.utils.encoding import smart_text
|
||||||
|
from django.db import transaction
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
from django.db.utils import IntegrityError
|
||||||
|
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from awx.main.utils import getattrd
|
from awx.main.utils import getattrd
|
||||||
@@ -489,7 +491,12 @@ def rebuild_role_hierarchy(apps, schema_editor):
|
|||||||
logger.info('Rebuild completed in %f seconds' % (stop - start))
|
logger.info('Rebuild completed in %f seconds' % (stop - start))
|
||||||
logger.info('Done.')
|
logger.info('Done.')
|
||||||
|
|
||||||
|
|
||||||
def infer_credential_org_from_team(apps, schema_editor):
|
def infer_credential_org_from_team(apps, schema_editor):
|
||||||
Credential = apps.get_model('main', "Credential")
|
Credential = apps.get_model('main', "Credential")
|
||||||
for cred in Credential.objects.exclude(deprecated_team__isnull=True):
|
for cred in Credential.objects.exclude(deprecated_team__isnull=True):
|
||||||
_update_credential_parents(cred.deprecated_team.organization, cred)
|
try:
|
||||||
|
with transaction.atomic():
|
||||||
|
_update_credential_parents(cred.deprecated_team.organization, cred)
|
||||||
|
except IntegrityError:
|
||||||
|
logger.info("Organization<{}> credential for old Team<{}> credential already created".format(cred.deprecated_team.organization.pk, cred.pk))
|
||||||
|
|||||||
Reference in New Issue
Block a user