diff --git a/awx/api/generics.py b/awx/api/generics.py index cb875db5b0f1..4020bb67576e 100644 --- a/awx/api/generics.py +++ b/awx/api/generics.py @@ -30,8 +30,8 @@ from rest_framework.renderers import StaticHTMLRenderer from rest_framework.negotiation import DefaultContentNegotiation -from ansible_base.filters.rest_framework.field_lookup_backend import FieldLookupBackend -from ansible_base.utils.models import get_all_field_names +from ansible_base.rest_filters.rest_framework.field_lookup_backend import FieldLookupBackend +from ansible_base.lib.utils.models import get_all_field_names # AWX from awx.main.models import UnifiedJob, UnifiedJobTemplate, User, Role, Credential, WorkflowJobTemplateNode, WorkflowApprovalTemplate diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 523b21af827b..806e46cc85f4 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -43,7 +43,7 @@ # Django-Polymorphic from polymorphic.models import PolymorphicModel -from ansible_base.utils.models import get_type_for_model +from ansible_base.lib.utils.models import get_type_for_model # AWX from awx.main.access import get_user_capabilities diff --git a/awx/conf/models.py b/awx/conf/models.py index 91274140fbae..e4442fcecf5e 100644 --- a/awx/conf/models.py +++ b/awx/conf/models.py @@ -7,7 +7,7 @@ # Django from django.db import models -from ansible_base.utils.models import prevent_search +from ansible_base.lib.utils.models import prevent_search # AWX from awx.main.models.base import CreatedModifiedModel diff --git a/awx/main/access.py b/awx/main/access.py index 6b57723e5b7e..5b297353568f 100644 --- a/awx/main/access.py +++ b/awx/main/access.py @@ -20,7 +20,7 @@ # Django OAuth Toolkit from awx.main.models.oauth import OAuth2Application, OAuth2AccessToken -from ansible_base.utils.validation import to_python_boolean +from ansible_base.lib.utils.validation import to_python_boolean # AWX from awx.main.utils import ( diff --git a/awx/main/models/__init__.py b/awx/main/models/__init__.py index 53b7ea63cd3c..2363543a9c61 100644 --- a/awx/main/models/__init__.py +++ b/awx/main/models/__init__.py @@ -6,7 +6,7 @@ from django.db import connection from django.db.models.signals import pre_delete # noqa -from ansible_base.utils.models import prevent_search +from ansible_base.lib.utils.models import prevent_search # AWX from awx.main.models.base import BaseModel, PrimordialModel, accepts_json, CLOUD_INVENTORY_SOURCES, VERBOSITY_CHOICES # noqa diff --git a/awx/main/models/ad_hoc_commands.py b/awx/main/models/ad_hoc_commands.py index 9143f30f9830..0583e07c0438 100644 --- a/awx/main/models/ad_hoc_commands.py +++ b/awx/main/models/ad_hoc_commands.py @@ -12,7 +12,7 @@ from django.utils.translation import gettext_lazy as _ from django.core.exceptions import ValidationError -from ansible_base.utils.models import prevent_search +from ansible_base.lib.utils.models import prevent_search # AWX from awx.api.versioning import reverse diff --git a/awx/main/models/ha.py b/awx/main/models/ha.py index 08490234f234..4792d4e4d4bb 100644 --- a/awx/main/models/ha.py +++ b/awx/main/models/ha.py @@ -17,7 +17,7 @@ import redis from solo.models import SingletonModel -from ansible_base.utils.models import prevent_search +from ansible_base.lib.utils.models import prevent_search # AWX from awx import __version__ as awx_application_version diff --git a/awx/main/models/inventory.py b/awx/main/models/inventory.py index ab8ae3284b1b..71c6eb0a9265 100644 --- a/awx/main/models/inventory.py +++ b/awx/main/models/inventory.py @@ -25,7 +25,7 @@ # REST Framework from rest_framework.exceptions import ParseError -from ansible_base.utils.models import prevent_search +from ansible_base.lib.utils.models import prevent_search # AWX from awx.api.versioning import reverse diff --git a/awx/main/models/jobs.py b/awx/main/models/jobs.py index a01f791af66c..7bd52d44388f 100644 --- a/awx/main/models/jobs.py +++ b/awx/main/models/jobs.py @@ -20,7 +20,7 @@ # REST Framework from rest_framework.exceptions import ParseError -from ansible_base.utils.models import prevent_search +from ansible_base.lib.utils.models import prevent_search # AWX from awx.api.versioning import reverse diff --git a/awx/main/models/mixins.py b/awx/main/models/mixins.py index a2b787396777..9e9a9e9c295f 100644 --- a/awx/main/models/mixins.py +++ b/awx/main/models/mixins.py @@ -16,7 +16,7 @@ from django.utils.crypto import get_random_string from django.utils.translation import gettext_lazy as _ -from ansible_base.utils.models import prevent_search +from ansible_base.lib.utils.models import prevent_search # AWX from awx.main.models.rbac import Role, RoleAncestorEntry diff --git a/awx/main/models/notifications.py b/awx/main/models/notifications.py index 4b5ce89fca05..aa72f98293cc 100644 --- a/awx/main/models/notifications.py +++ b/awx/main/models/notifications.py @@ -15,7 +15,7 @@ from jinja2 import sandbox, ChainableUndefined from jinja2.exceptions import TemplateSyntaxError, UndefinedError, SecurityError -from ansible_base.utils.models import prevent_search +from ansible_base.lib.utils.models import prevent_search # AWX from awx.api.versioning import reverse diff --git a/awx/main/models/unified_jobs.py b/awx/main/models/unified_jobs.py index 83696d1eefce..a169feec25db 100644 --- a/awx/main/models/unified_jobs.py +++ b/awx/main/models/unified_jobs.py @@ -30,7 +30,7 @@ # Django-Polymorphic from polymorphic.models import PolymorphicModel -from ansible_base.utils.models import prevent_search, get_type_for_model +from ansible_base.lib.utils.models import prevent_search, get_type_for_model # AWX from awx.main.models.base import CommonModelNameNotUnique, PasswordFieldsModel, NotificationFieldsModel diff --git a/awx/main/models/workflow.py b/awx/main/models/workflow.py index 5f0cbff7caa8..9e8eb1a460f2 100644 --- a/awx/main/models/workflow.py +++ b/awx/main/models/workflow.py @@ -23,7 +23,7 @@ from jinja2 import sandbox from jinja2.exceptions import TemplateSyntaxError, UndefinedError, SecurityError -from ansible_base.utils.models import prevent_search +from ansible_base.lib.utils.models import prevent_search # AWX from awx.api.versioning import reverse diff --git a/awx/main/scheduler/task_manager.py b/awx/main/scheduler/task_manager.py index 18ebec427508..d064549012b1 100644 --- a/awx/main/scheduler/task_manager.py +++ b/awx/main/scheduler/task_manager.py @@ -17,7 +17,7 @@ from django.conf import settings from django.contrib.contenttypes.models import ContentType -from ansible_base.utils.models import get_type_for_model +from ansible_base.lib.utils.models import get_type_for_model # AWX from awx.main.dispatch.reaper import reap_job diff --git a/awx/main/tests/functional/api/test_survey_spec.py b/awx/main/tests/functional/api/test_survey_spec.py index 97a7f65c0fca..ec20806f6bfd 100644 --- a/awx/main/tests/functional/api/test_survey_spec.py +++ b/awx/main/tests/functional/api/test_survey_spec.py @@ -2,7 +2,7 @@ import pytest import json -from ansible_base.utils.models import get_type_for_model +from ansible_base.lib.utils.models import get_type_for_model from awx.api.versioning import reverse from awx.main.models.jobs import JobTemplate, Job diff --git a/awx/main/tests/unit/api/test_filters.py b/awx/main/tests/unit/api/test_filters.py index 0066fdd0f631..29c2e3a93d97 100644 --- a/awx/main/tests/unit/api/test_filters.py +++ b/awx/main/tests/unit/api/test_filters.py @@ -5,7 +5,7 @@ # Django from rest_framework.exceptions import PermissionDenied -from ansible_base.filters.rest_framework.field_lookup_backend import FieldLookupBackend +from ansible_base.rest_filters.rest_framework.field_lookup_backend import FieldLookupBackend from awx.main.models import ( AdHocCommand, diff --git a/awx/main/tests/unit/utils/test_common.py b/awx/main/tests/unit/utils/test_common.py index 1d960c45db17..3114fda7d30f 100644 --- a/awx/main/tests/unit/utils/test_common.py +++ b/awx/main/tests/unit/utils/test_common.py @@ -12,7 +12,7 @@ from rest_framework.exceptions import ParseError -from ansible_base.utils.models import get_type_for_model +from ansible_base.lib.utils.models import get_type_for_model from awx.main.utils import common from awx.api.validators import HostnameRegexValidator diff --git a/awx/main/tests/unit/utils/test_filters.py b/awx/main/tests/unit/utils/test_filters.py index ad1115043f89..55dd8ddf341e 100644 --- a/awx/main/tests/unit/utils/test_filters.py +++ b/awx/main/tests/unit/utils/test_filters.py @@ -69,7 +69,7 @@ def __init__(self): @mock.patch('awx.main.utils.filters.get_model', return_value=mockHost()) class TestSmartFilterQueryFromString: @mock.patch( - 'ansible_base.filters.rest_framework.field_lookup_backend.get_fields_from_path', lambda model, path: ([model], path) + 'ansible_base.rest_filters.rest_framework.field_lookup_backend.get_fields_from_path', lambda model, path: ([model], path) ) # disable field filtering, because a__b isn't a real Host field @pytest.mark.parametrize( "filter_string,q_expected", diff --git a/awx/main/utils/filters.py b/awx/main/utils/filters.py index 682938cb1662..6aa882a0c4a1 100644 --- a/awx/main/utils/filters.py +++ b/awx/main/utils/filters.py @@ -161,7 +161,7 @@ def __init__(self, t): else: # detect loops and restrict access to sensitive fields # this import is intentional here to avoid a circular import - from ansible_base.filters.rest_framework.field_lookup_backend import FieldLookupBackend + from ansible_base.rest_filters.rest_framework.field_lookup_backend import FieldLookupBackend FieldLookupBackend().get_field_from_lookup(Host, k) kwargs[k] = v diff --git a/awx/settings/defaults.py b/awx/settings/defaults.py index ae3610633a4d..f3f8f1881bac 100644 --- a/awx/settings/defaults.py +++ b/awx/settings/defaults.py @@ -352,7 +352,7 @@ 'awx.ui', 'awx.sso', 'solo', - 'ansible_base', + 'ansible_base.rest_filters', ] INTERNAL_IPS = ('127.0.0.1',) @@ -1077,13 +1077,10 @@ # django-ansible-base -ANSIBLE_BASE_FEATURES = {'AUTHENTICATION': False, 'SWAGGER': False, 'FILTERING': True} +ANSIBLE_BASE_TEAM_MODEL = 'main.Team' +ANSIBLE_BASE_ORGANIZATION_MODEL = 'main.Organization' -from ansible_base import settings # noqa: E402 +from ansible_base.lib import dynamic_config # noqa: E402 -settings_file = os.path.join(os.path.dirname(settings.__file__), 'dynamic_settings.py') +settings_file = os.path.join(os.path.dirname(dynamic_config.__file__), 'dynamic_settings.py') include(settings_file) - -ANSIBLE_BASE_TEAM_MODEL = 'main.Team' - -ANSIBLE_BASE_ORGANIZATION_MODEL = 'main.Organization' diff --git a/requirements/requirements_git.txt b/requirements/requirements_git.txt index 5f141306b753..0d2bef443074 100644 --- a/requirements/requirements_git.txt +++ b/requirements/requirements_git.txt @@ -5,4 +5,4 @@ git+https://github.com/ansible/ansible-runner.git@devel#egg=ansible-runner # specifically need https://github.com/robgolding/django-radius/pull/27 git+https://github.com/ansible/django-radius.git@develop#egg=django-radius git+https://github.com/ansible/python3-saml.git@devel#egg=python3-saml -git+https://github.com/ansible/django-ansible-base.git@devel#egg=django-ansible-base[filtering] +django-ansible-base @ git+https://github.com/john-westcott-iv/django-ansible-base@app_split#egg=django-ansible-base[rest_filters] \ No newline at end of file