From 36f3b467269eba0e443d444b1f085e2e6f42acb6 Mon Sep 17 00:00:00 2001 From: Jeff Bradberry Date: Mon, 12 Feb 2024 10:48:58 -0500 Subject: [PATCH] Avoid using SmartFilter during migrations (#14786) Our migrations that touch roles tend to bring in our real models via migration_utils.set_current_apps_for_migrations, and that can have some undesirable side-effects. --- awx/main/fields.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/awx/main/fields.py b/awx/main/fields.py index f3b99e2e70..c6d01f2795 100644 --- a/awx/main/fields.py +++ b/awx/main/fields.py @@ -5,6 +5,7 @@ import copy import json import re +import sys import urllib.parse from jinja2 import sandbox, StrictUndefined @@ -406,11 +407,13 @@ class SmartFilterField(models.TextField): # https://docs.python.org/2/library/stdtypes.html#truth-value-testing if not value: return None - value = urllib.parse.unquote(value) - try: - SmartFilter().query_from_string(value) - except RuntimeError as e: - raise models.base.ValidationError(e) + # avoid doing too much during migrations + if 'migrate' not in sys.argv: + value = urllib.parse.unquote(value) + try: + SmartFilter().query_from_string(value) + except RuntimeError as e: + raise models.base.ValidationError(e) return super(SmartFilterField, self).get_prep_value(value)