Add logging and reduce migration to one operation

This commit is contained in:
Oleksii Baranov 2023-03-16 16:38:17 +01:00 committed by Oleksii Baranov
parent 2d114a4d16
commit 46227f14a1
3 changed files with 32 additions and 31 deletions

View File

@ -1,31 +0,0 @@
# Generated by Django 3.2.16 on 2023-03-14 18:25
from django.db import migrations
from awx.main.models import CredentialType
class Migration(migrations.Migration):
def update_cyberark_ccp_name(apps, schema_editor):
CredentialType.setup_tower_managed_defaults(apps)
aim_types = apps.get_model('main', 'CredentialType').objects.filter(namespace='aim').order_by('id')
if aim_types.count() == 2:
original, renamed = aim_types.all()
apps.get_model('main', 'Credential').objects.filter(credential_type_id=original.id).update(credential_type_id=renamed.id)
original.delete()
def update_cyberark_conjur_name(apps, schema_editor):
CredentialType.setup_tower_managed_defaults(apps)
conjur_types = apps.get_model('main', 'CredentialType').objects.filter(namespace='conjur').order_by('id')
if conjur_types.count() == 2:
original, renamed = conjur_types.all()
apps.get_model('main', 'Credential').objects.filter(credential_type_id=original.id).update(credential_type_id=renamed.id)
original.delete()
dependencies = [
('main', '0176_inventorysource_scm_branch'),
]
operations = [migrations.RunPython(update_cyberark_ccp_name), migrations.RunPython(update_cyberark_conjur_name)]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.16 on 2023-03-16 15:16
from django.db import migrations
from awx.main.migrations._credentialtypes import migrate_credential_type
from awx.main.models import CredentialType
class Migration(migrations.Migration):
def update_cyberark_plugin_names(apps, schema_editor):
CredentialType.setup_tower_managed_defaults(apps)
migrate_credential_type(apps, 'aim')
migrate_credential_type(apps, 'conjur')
dependencies = [
('main', '0178_instance_group_admin_migration'),
]
operations = [migrations.RunPython(update_cyberark_plugin_names)]

View File

@ -1,6 +1,9 @@
import logging
from awx.main.models import CredentialType
from django.db.models import Q
logger = logging.getLogger('awx.main.migrations')
DEPRECATED_CRED_KIND = {
'rax': {
@ -76,3 +79,14 @@ def add_tower_verify_field(apps, schema_editor):
def remove_become_methods(apps, schema_editor):
# this is no longer necessary; schemas are defined in code
pass
def migrate_credential_type(apps, namespace):
ns_types = apps.get_model('main', 'CredentialType').objects.filter(namespace=namespace).order_by('created')
if ns_types.count() == 2:
original, renamed = ns_types.all()
logger.info(f'There are credential types to migrate in the "{namespace}" namespace: {original.name}')
apps.get_model('main', 'Credential').objects.filter(credential_type_id=original.id).update(credential_type_id=renamed.id)
logger.info(f'Removing old credential type: {renamed.name}')
original.delete()