From 0bf06479d59e8fe101bf0b467f63fbccd2d07273 Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Fri, 8 Dec 2017 14:49:20 -0500 Subject: [PATCH] add migration to remove old start_args --- awx/main/migrations/0011_blank_start_args.py | 22 ++++++++++++++++++++ awx/main/migrations/_reencrypt.py | 17 +++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 awx/main/migrations/0011_blank_start_args.py diff --git a/awx/main/migrations/0011_blank_start_args.py b/awx/main/migrations/0011_blank_start_args.py new file mode 100644 index 0000000000..ba3648a31e --- /dev/null +++ b/awx/main/migrations/0011_blank_start_args.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Python +from __future__ import unicode_literals + +# Django +from django.db import migrations, models + +# AWX +from awx.main.migrations import _migration_utils as migration_utils +from awx.main.migrations._reencrypt import blank_old_start_args + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0010_saved_launchtime_configs'), + ] + + operations = [ + migrations.RunPython(migration_utils.set_current_apps_for_migrations, migrations.RunPython.noop), + migrations.RunPython(blank_old_start_args, migrations.RunPython.noop), + ] diff --git a/awx/main/migrations/_reencrypt.py b/awx/main/migrations/_reencrypt.py index 84b95e8160..6a293a5e3c 100644 --- a/awx/main/migrations/_reencrypt.py +++ b/awx/main/migrations/_reencrypt.py @@ -74,3 +74,20 @@ def _unified_jobs(apps): uj.start_args = decrypt_field(uj, 'start_args') uj.start_args = encrypt_field(uj, 'start_args') uj.save() + + +def blank_old_start_args(apps, schema_editor): + UnifiedJob = apps.get_model('main', 'UnifiedJob') + for uj in UnifiedJob.objects.defer('result_stdout_text').exclude(start_args='').iterator(): + if uj.status in ['running', 'pending', 'new', 'waiting']: + continue + try: + args_dict = decrypt_field(uj, 'start_args') + except ValueError: + args_dict = None + if args_dict == {}: + continue + if uj.start_args: + logger.debug('Blanking job args for %s', uj.pk) + uj.start_args = '' + uj.save()