35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
import logging
|
|
from django.utils.timezone import now
|
|
from awx.main.utils.encryption import decrypt_field, encrypt_field
|
|
|
|
logger = logging.getLogger('awx.conf.settings')
|
|
|
|
__all__ = ['clear_old_license', 'prefill_rh_credentials']
|
|
|
|
|
|
def clear_old_license(apps, schema_editor):
|
|
Setting = apps.get_model('conf', 'Setting')
|
|
Setting.objects.filter(key='LICENSE').delete()
|
|
|
|
|
|
def _migrate_setting(apps, old_key, new_key, encrypted=False):
|
|
Setting = apps.get_model('conf', 'Setting')
|
|
if not Setting.objects.filter(key=old_key).exists():
|
|
return
|
|
new_setting = Setting.objects.create(key=new_key,
|
|
created=now(),
|
|
modified=now()
|
|
)
|
|
if encrypted:
|
|
new_setting.value = decrypt_field(Setting.objects.filter(key=old_key).first(), 'value')
|
|
new_setting.value = encrypt_field(new_setting, 'value')
|
|
else:
|
|
new_setting.value = getattr(Setting.objects.filter(key=old_key).first(), 'value')
|
|
new_setting.save()
|
|
|
|
|
|
def prefill_rh_credentials(apps, schema_editor):
|
|
_migrate_setting(apps, 'REDHAT_USERNAME', 'SUBSCRIPTIONS_USERNAME', encrypted=False)
|
|
_migrate_setting(apps, 'REDHAT_PASSWORD', 'SUBSCRIPTIONS_PASSWORD', encrypted=True)
|