mirror of
https://github.com/ZwareBear/awx.git
synced 2026-04-19 22:41:49 -05:00
- upgrades
- Django 3.0.14
- django-jsonfield 1.4.1 (from 1.2.0)
- django-oauth-toolkit 1.4.1 (from 1.1.3)
- Stopping here because later versions have changes to the
underlying model to support OpenID Connect. Presumably this can
be dealt with via a migration in our project.
- django-guid 2.2.1 (from 2.2.0)
- django-debug-toolbar 3.2.4 (from 1.11.1)
- python3-saml 1.13.0 (from 1.9.0)
- xmlsec 1.3.12 (from 1.3.3)
- Remove our project's use of django.utils.six in favor of directly
using six, in awx.sso.fields.
- Temporarily monkey patch six back in as django.utils.six, since
django-jsonfield makes use of that import, and is no longer being
updated. Hopefully we can do away with this dependency with the new
generalized JSONField brought in with Django 3.1.
- Force a json decoder to be used with all instances of JSONField
brought in by django-jsonfield. This deals with the 'cast to text'
problem noted previously in our UPGRADE_BLOCKERS.
- Remove the validate_uris validator from the OAuth2Application in
migration 0025, per the UPGRADE_BLOCKERS, and remove that note.
- Update the TEMPLATES setting to satisfy Django Debug Toolbar. It
requires at least one entry that has APP_DIRS=True, and as near as I
can tell our custom OPTIONS.loaders setting was effectively doing
the same thing as Django's own machinery if this setting is set.
115 lines
3.9 KiB
Python
115 lines
3.9 KiB
Python
# Copyright (c) 2015 Ansible, Inc.
|
|
# All Rights Reserved.
|
|
|
|
# Development settings for AWX project.
|
|
|
|
# Python
|
|
import os
|
|
import socket
|
|
import copy
|
|
import sys
|
|
import traceback
|
|
import uuid
|
|
|
|
# Centos-7 doesn't include the svg mime type
|
|
# /usr/lib64/python/mimetypes.py
|
|
import mimetypes
|
|
|
|
# Django Split Settings
|
|
from split_settings.tools import optional, include
|
|
|
|
# Load default settings.
|
|
from .defaults import * # NOQA
|
|
|
|
# awx-manage shell_plus --notebook
|
|
NOTEBOOK_ARGUMENTS = ['--NotebookApp.token=', '--ip', '0.0.0.0', '--port', '8888', '--allow-root', '--no-browser']
|
|
|
|
# print SQL queries in shell_plus
|
|
SHELL_PLUS_PRINT_SQL = False
|
|
|
|
# show colored logs in the dev environment
|
|
# to disable this, set `COLOR_LOGS = False` in awx/settings/local_settings.py
|
|
LOGGING['handlers']['console']['()'] = 'awx.main.utils.handlers.ColorHandler' # noqa
|
|
# task system does not propagate to AWX, so color log these too
|
|
LOGGING['handlers']['task_system'] = LOGGING['handlers']['console'].copy() # noqa
|
|
COLOR_LOGS = True
|
|
|
|
ALLOWED_HOSTS = ['*']
|
|
|
|
mimetypes.add_type("image/svg+xml", ".svg", True)
|
|
mimetypes.add_type("image/svg+xml", ".svgz", True)
|
|
|
|
# Disallow sending session cookies over insecure connections
|
|
SESSION_COOKIE_SECURE = False
|
|
|
|
# Disallow sending csrf cookies over insecure connections
|
|
CSRF_COOKIE_SECURE = False
|
|
|
|
# Disable Pendo on the UI for development/test.
|
|
# Note: This setting may be overridden by database settings.
|
|
PENDO_TRACKING_STATE = "off"
|
|
INSIGHTS_TRACKING_STATE = False
|
|
|
|
# debug toolbar and swagger assume that requirements/requirements_dev.txt are installed
|
|
|
|
INSTALLED_APPS += ['rest_framework_swagger', 'debug_toolbar'] # NOQA
|
|
|
|
MIDDLEWARE = ['debug_toolbar.middleware.DebugToolbarMiddleware'] + MIDDLEWARE # NOQA
|
|
|
|
DEBUG_TOOLBAR_CONFIG = {'ENABLE_STACKTRACES': True}
|
|
|
|
# Configure a default UUID for development only.
|
|
SYSTEM_UUID = '00000000-0000-0000-0000-000000000000'
|
|
INSTALL_UUID = '00000000-0000-0000-0000-000000000000'
|
|
|
|
# Store a snapshot of default settings at this point before loading any
|
|
# customizable config files.
|
|
DEFAULTS_SNAPSHOT = {}
|
|
this_module = sys.modules[__name__]
|
|
for setting in dir(this_module):
|
|
if setting == setting.upper():
|
|
DEFAULTS_SNAPSHOT[setting] = copy.deepcopy(getattr(this_module, setting))
|
|
|
|
# If there is an `/etc/tower/settings.py`, include it.
|
|
# If there is a `/etc/tower/conf.d/*.py`, include them.
|
|
include(optional('/etc/tower/settings.py'), scope=locals())
|
|
include(optional('/etc/tower/conf.d/*.py'), scope=locals())
|
|
|
|
BASE_VENV_PATH = "/var/lib/awx/venv/"
|
|
AWX_VENV_PATH = os.path.join(BASE_VENV_PATH, "awx")
|
|
|
|
# If any local_*.py files are present in awx/settings/, use them to override
|
|
# default settings for development. If not present, we can still run using
|
|
# only the defaults.
|
|
try:
|
|
if os.getenv('AWX_KUBE_DEVEL', False):
|
|
include(optional('minikube.py'), scope=locals())
|
|
else:
|
|
include(optional('local_*.py'), scope=locals())
|
|
except ImportError:
|
|
traceback.print_exc()
|
|
sys.exit(1)
|
|
|
|
# Use SQLite for unit tests instead of PostgreSQL. If the lines below are
|
|
# commented out, Django will create the test_awx-dev database in PostgreSQL to
|
|
# run unit tests.
|
|
if "pytest" in sys.modules:
|
|
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'LOCATION': 'unique-{}'.format(str(uuid.uuid4()))}}
|
|
DATABASES = {
|
|
'default': {
|
|
'ENGINE': 'django.db.backends.sqlite3',
|
|
'NAME': os.path.join(BASE_DIR, 'awx.sqlite3'), # noqa
|
|
'TEST': {
|
|
# Test database cannot be :memory: for inventory tests.
|
|
'NAME': os.path.join(BASE_DIR, 'awx_test.sqlite3') # noqa
|
|
},
|
|
}
|
|
}
|
|
|
|
CLUSTER_HOST_ID = socket.gethostname()
|
|
|
|
AWX_CALLBACK_PROFILE = True
|
|
|
|
if 'sqlite3' not in DATABASES['default']['ENGINE']: # noqa
|
|
DATABASES['default'].setdefault('OPTIONS', dict()).setdefault('application_name', f'{CLUSTER_HOST_ID}-{os.getpid()}-{" ".join(sys.argv)}'[:63]) # noqa
|