combine launch config and multi-cred migrations

This commit is contained in:
AlanCoding 2017-12-06 10:21:59 -05:00
parent 5ada021a6e
commit 98df442ced
No known key found for this signature in database
GPG Key ID: FD2C3C012A72926B
3 changed files with 25 additions and 11 deletions

View File

@ -6,7 +6,7 @@ import django.db.models.deletion
import awx.main.fields
from awx.main.migrations import _migration_utils as migration_utils
from awx.main.migrations._workflow_credential import migrate_workflow_cred
from awx.main.migrations._multi_cred import migrate_workflow_cred, migrate_workflow_cred_reverse
class Migration(migrations.Migration):
@ -67,8 +67,8 @@ class Migration(migrations.Migration):
field=awx.main.fields.JSONField(default={}, editable=False, blank=True),
),
# Run data migration before removing the old credential field
migrations.RunPython(migration_utils.set_current_apps_for_migrations, lambda x, y: None),
migrations.RunPython(migrate_workflow_cred, lambda x, y: None),
migrations.RunPython(migration_utils.set_current_apps_for_migrations, migrations.RunPython.noop),
migrations.RunPython(migrate_workflow_cred, migrate_workflow_cred_reverse),
migrations.RemoveField(
model_name='workflowjobnode',
name='credential',

View File

@ -10,3 +10,25 @@ def migrate_to_multi_cred(app, schema_editor):
j.credentials.add(j.vault_credential)
for cred in j.extra_credentials.all():
j.credentials.add(cred)
def migrate_workflow_cred(app, schema_editor):
WorkflowJobTemplateNode = app.get_model('main', 'WorkflowJobTemplateNode')
WorkflowJobNode = app.get_model('main', 'WorkflowJobNode')
for cls in (WorkflowJobNode, WorkflowJobTemplateNode):
for node in cls.objects.iterator():
if node.credential:
node.credentials.add(j.credential)
def migrate_workflow_cred_reverse(app, schema_editor):
WorkflowJobTemplateNode = app.get_model('main', 'WorkflowJobTemplateNode')
WorkflowJobNode = app.get_model('main', 'WorkflowJobNode')
for cls in (WorkflowJobNode, WorkflowJobTemplateNode):
for node in cls.objects.iterator():
cred = node.credentials.first()
if cred:
node.credential = cred
node.save()

View File

@ -1,8 +0,0 @@
def migrate_workflow_cred(app, schema_editor):
WorkflowJobTemplateNode = app.get_model('main', 'WorkflowJobTemplateNode')
WorkflowJobNode = app.get_model('main', 'WorkflowJobNode')
for cls in (WorkflowJobNode, WorkflowJobTemplateNode):
for j in cls.objects.iterator():
if j.credential:
j.credentials.add(j.credential)