mirror of
https://github.com/ansible/awx.git
synced 2026-05-15 05:17:36 -02:30
Update package versions, settings, and tooling
This commit is contained in:
12
Makefile
12
Makefile
@@ -203,8 +203,11 @@ develop:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
version_file:
|
version_file:
|
||||||
mkdir -p /var/lib/awx/
|
mkdir -p /var/lib/awx/; \
|
||||||
python -c "import awx as awx; print awx.__version__" > /var/lib/awx/.awx_version
|
if [ "$(VENV_BASE)" ]; then \
|
||||||
|
. $(VENV_BASE)/awx/bin/activate; \
|
||||||
|
fi; \
|
||||||
|
python -c "import awx as awx; print awx.__version__" > /var/lib/awx/.awx_version; \
|
||||||
|
|
||||||
# Do any one-time init tasks.
|
# Do any one-time init tasks.
|
||||||
comma := ,
|
comma := ,
|
||||||
@@ -284,7 +287,7 @@ flower:
|
|||||||
@if [ "$(VENV_BASE)" ]; then \
|
@if [ "$(VENV_BASE)" ]; then \
|
||||||
. $(VENV_BASE)/awx/bin/activate; \
|
. $(VENV_BASE)/awx/bin/activate; \
|
||||||
fi; \
|
fi; \
|
||||||
$(PYTHON) manage.py celery flower --address=0.0.0.0 --port=5555 --broker=amqp://guest:guest@$(RABBITMQ_HOST):5672//
|
celery flower --address=0.0.0.0 --port=5555 --broker=amqp://guest:guest@$(RABBITMQ_HOST):5672//
|
||||||
|
|
||||||
collectstatic:
|
collectstatic:
|
||||||
@if [ "$(VENV_BASE)" ]; then \
|
@if [ "$(VENV_BASE)" ]; then \
|
||||||
@@ -322,8 +325,7 @@ celeryd:
|
|||||||
@if [ "$(VENV_BASE)" ]; then \
|
@if [ "$(VENV_BASE)" ]; then \
|
||||||
. $(VENV_BASE)/awx/bin/activate; \
|
. $(VENV_BASE)/awx/bin/activate; \
|
||||||
fi; \
|
fi; \
|
||||||
$(PYTHON) manage.py celeryd -l DEBUG -B -Ofair --autoreload --autoscale=100,4 --schedule=$(CELERY_SCHEDULE_FILE) -Q tower_scheduler,tower_broadcast_all,$(COMPOSE_HOST),$(AWX_GROUP_QUEUES) -n celery@$(COMPOSE_HOST)
|
celery worker -A awx -l DEBUG -B -Ofair --autoscale=100,4 --schedule=$(CELERY_SCHEDULE_FILE) -Q tower_scheduler,tower_broadcast_all,$(COMPOSE_HOST),$(AWX_GROUP_QUEUES) -n celery@$(COMPOSE_HOST)
|
||||||
#$(PYTHON) manage.py celery multi show projects jobs default -l DEBUG -Q:projects projects -Q:jobs jobs -Q:default default -c:projects 1 -c:jobs 3 -c:default 3 -Ofair -B --schedule=$(CELERY_SCHEDULE_FILE)
|
|
||||||
|
|
||||||
# Run to start the zeromq callback receiver
|
# Run to start the zeromq callback receiver
|
||||||
receiver:
|
receiver:
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import os
|
|||||||
import re # noqa
|
import re # noqa
|
||||||
import sys
|
import sys
|
||||||
import ldap
|
import ldap
|
||||||
import djcelery
|
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
|
||||||
from kombu import Queue, Exchange
|
from kombu import Queue, Exchange
|
||||||
@@ -42,7 +41,6 @@ def IS_TESTING(argv=None):
|
|||||||
|
|
||||||
|
|
||||||
DEBUG = True
|
DEBUG = True
|
||||||
TEMPLATE_DEBUG = DEBUG
|
|
||||||
SQL_DEBUG = DEBUG
|
SQL_DEBUG = DEBUG
|
||||||
|
|
||||||
ADMINS = (
|
ADMINS = (
|
||||||
@@ -195,20 +193,37 @@ CSRF_COOKIE_SECURE = True
|
|||||||
# Limit CSRF cookies to browser sessions
|
# Limit CSRF cookies to browser sessions
|
||||||
CSRF_COOKIE_AGE = None
|
CSRF_COOKIE_AGE = None
|
||||||
|
|
||||||
TEMPLATE_CONTEXT_PROCESSORS = ( # NOQA
|
TEMPLATES = [
|
||||||
'django.contrib.auth.context_processors.auth',
|
{
|
||||||
'django.core.context_processors.debug',
|
'NAME': 'default',
|
||||||
'django.core.context_processors.i18n',
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
'django.core.context_processors.media',
|
'OPTIONS': {
|
||||||
'django.core.context_processors.static',
|
'debug': DEBUG,
|
||||||
'django.core.context_processors.tz',
|
'context_processors': [# NOQA
|
||||||
'django.contrib.messages.context_processors.messages',
|
'django.contrib.auth.context_processors.auth',
|
||||||
'django.core.context_processors.request',
|
'django.template.context_processors.debug',
|
||||||
'awx.ui.context_processors.settings',
|
'django.template.context_processors.request',
|
||||||
'awx.ui.context_processors.version',
|
'django.template.context_processors.i18n',
|
||||||
'social.apps.django_app.context_processors.backends',
|
'django.template.context_processors.media',
|
||||||
'social.apps.django_app.context_processors.login_redirect',
|
'django.template.context_processors.static',
|
||||||
)
|
'django.template.context_processors.tz',
|
||||||
|
'django.contrib.messages.context_processors.messages',
|
||||||
|
'awx.ui.context_processors.settings',
|
||||||
|
'awx.ui.context_processors.version',
|
||||||
|
'social_django.context_processors.backends',
|
||||||
|
'social_django.context_processors.login_redirect',
|
||||||
|
],
|
||||||
|
'loaders': [
|
||||||
|
'django.template.loaders.cached.Loader',
|
||||||
|
'django.template.loaders.filesystem.Loader',
|
||||||
|
'django.template.loaders.app_directories.Loader',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
'DIRS': [
|
||||||
|
os.path.join(BASE_DIR, 'templates'),
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = ( # NOQA
|
MIDDLEWARE_CLASSES = ( # NOQA
|
||||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
@@ -217,6 +232,7 @@ MIDDLEWARE_CLASSES = ( # NOQA
|
|||||||
'django.middleware.csrf.CsrfViewMiddleware',
|
'django.middleware.csrf.CsrfViewMiddleware',
|
||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
'django.contrib.messages.middleware.MessageMiddleware',
|
'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
|
'debug_toolbar.middleware.DebugToolbarMiddleware',
|
||||||
'awx.main.middleware.ActivityStreamMiddleware',
|
'awx.main.middleware.ActivityStreamMiddleware',
|
||||||
'awx.sso.middleware.SocialAuthMiddleware',
|
'awx.sso.middleware.SocialAuthMiddleware',
|
||||||
'crum.CurrentRequestUserMiddleware',
|
'crum.CurrentRequestUserMiddleware',
|
||||||
@@ -224,16 +240,6 @@ MIDDLEWARE_CLASSES = ( # NOQA
|
|||||||
'awx.main.middleware.URLModificationMiddleware',
|
'awx.main.middleware.URLModificationMiddleware',
|
||||||
)
|
)
|
||||||
|
|
||||||
TEMPLATE_DIRS = (
|
|
||||||
os.path.join(BASE_DIR, 'templates'),
|
|
||||||
)
|
|
||||||
|
|
||||||
TEMPLATE_LOADERS = (
|
|
||||||
('django.template.loaders.cached.Loader', (
|
|
||||||
'django.template.loaders.filesystem.Loader',
|
|
||||||
'django.template.loaders.app_directories.Loader',
|
|
||||||
)),
|
|
||||||
)
|
|
||||||
|
|
||||||
ROOT_URLCONF = 'awx.urls'
|
ROOT_URLCONF = 'awx.urls'
|
||||||
|
|
||||||
@@ -248,12 +254,11 @@ INSTALLED_APPS = (
|
|||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'rest_framework',
|
'rest_framework',
|
||||||
'django_extensions',
|
'django_extensions',
|
||||||
'djcelery',
|
'django_celery_results',
|
||||||
'kombu.transport.django',
|
|
||||||
'channels',
|
'channels',
|
||||||
'polymorphic',
|
'polymorphic',
|
||||||
'taggit',
|
'taggit',
|
||||||
'social.apps.django_app.default',
|
'social_django',
|
||||||
'awx.conf',
|
'awx.conf',
|
||||||
'awx.main',
|
'awx.main',
|
||||||
'awx.api',
|
'awx.api',
|
||||||
@@ -302,11 +307,11 @@ AUTHENTICATION_BACKENDS = (
|
|||||||
'awx.sso.backends.LDAPBackend',
|
'awx.sso.backends.LDAPBackend',
|
||||||
'awx.sso.backends.RADIUSBackend',
|
'awx.sso.backends.RADIUSBackend',
|
||||||
'awx.sso.backends.TACACSPlusBackend',
|
'awx.sso.backends.TACACSPlusBackend',
|
||||||
'social.backends.google.GoogleOAuth2',
|
'social_core.backends.google.GoogleOAuth2',
|
||||||
'social.backends.github.GithubOAuth2',
|
'social_core.backends.github.GithubOAuth2',
|
||||||
'social.backends.github.GithubOrganizationOAuth2',
|
'social_core.backends.github.GithubOrganizationOAuth2',
|
||||||
'social.backends.github.GithubTeamOAuth2',
|
'social_core.backends.github.GithubTeamOAuth2',
|
||||||
'social.backends.azuread.AzureADOAuth2',
|
'social_core.backends.azuread.AzureADOAuth2',
|
||||||
'awx.sso.backends.SAMLAuth',
|
'awx.sso.backends.SAMLAuth',
|
||||||
'django.contrib.auth.backends.ModelBackend',
|
'django.contrib.auth.backends.ModelBackend',
|
||||||
)
|
)
|
||||||
@@ -410,41 +415,35 @@ DEVSERVER_DEFAULT_PORT = '8013'
|
|||||||
# Set default ports for live server tests.
|
# Set default ports for live server tests.
|
||||||
os.environ.setdefault('DJANGO_LIVE_TEST_SERVER_ADDRESS', 'localhost:9013-9199')
|
os.environ.setdefault('DJANGO_LIVE_TEST_SERVER_ADDRESS', 'localhost:9013-9199')
|
||||||
|
|
||||||
# Initialize Django-Celery.
|
CELERY_BROKER_URL = 'amqp://guest:guest@localhost:5672//'
|
||||||
djcelery.setup_loader()
|
|
||||||
|
|
||||||
BROKER_URL = 'amqp://guest:guest@localhost:5672//'
|
|
||||||
CELERY_EVENT_QUEUE_TTL = 5
|
CELERY_EVENT_QUEUE_TTL = 5
|
||||||
CELERY_DEFAULT_QUEUE = 'tower'
|
CELERY_TASK_DEFAULT_QUEUE = 'tower'
|
||||||
CELERY_TASK_SERIALIZER = 'json'
|
CELERY_TASK_SERIALIZER = 'json'
|
||||||
CELERY_RESULT_SERIALIZER = 'json'
|
CELERY_RESULT_SERIALIZER = 'json'
|
||||||
CELERY_ACCEPT_CONTENT = ['json']
|
CELERY_ACCEPT_CONTENT = ['json']
|
||||||
CELERY_TRACK_STARTED = True
|
CELERY_TASK_TRACK_STARTED = True
|
||||||
CELERYD_TASK_TIME_LIMIT = None
|
CELERY_TASK_TIME_LIMIT = None
|
||||||
CELERYD_TASK_SOFT_TIME_LIMIT = None
|
CELERY_TASK_SOFT_TIME_LIMIT = None
|
||||||
CELERYD_POOL_RESTARTS = True
|
CELERY_WORKER_POOL_RESTARTS = True
|
||||||
CELERYBEAT_SCHEDULER = 'celery.beat.PersistentScheduler'
|
CELERY_BEAT_SCHEDULER = 'celery.beat.PersistentScheduler'
|
||||||
CELERYBEAT_MAX_LOOP_INTERVAL = 60
|
CELERY_BEAT_MAX_LOOP_INTERVAL = 60
|
||||||
CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
|
CELERY_RESULT_BACKEND = 'django-db'
|
||||||
CELERY_IMPORTS = ('awx.main.scheduler.tasks',)
|
CELERY_IMPORTS = ('awx.main.scheduler.tasks',)
|
||||||
CELERY_QUEUES = (
|
CELERY_TASK_QUEUES = (
|
||||||
Queue('default', Exchange('default'), routing_key='default'),
|
Queue('default', Exchange('default'), routing_key='default'),
|
||||||
Queue('tower', Exchange('tower'), routing_key='tower'),
|
Queue('tower', Exchange('tower'), routing_key='tower'),
|
||||||
Queue('tower_scheduler', Exchange('scheduler', type='topic'), routing_key='tower_scheduler.job.#', durable=False),
|
Queue('tower_scheduler', Exchange('scheduler', type='topic'), routing_key='tower_scheduler.job.#', durable=False),
|
||||||
Broadcast('tower_broadcast_all')
|
Broadcast('tower_broadcast_all')
|
||||||
)
|
)
|
||||||
CELERY_ROUTES = {'awx.main.scheduler.tasks.run_task_manager': {'queue': 'tower',
|
CELERY_TASK_ROUTES = {
|
||||||
'routing_key': 'tower'},
|
'awx.main.scheduler.tasks.run_task_manager': {'queue': 'tower', 'routing_key': 'tower'},
|
||||||
'awx.main.scheduler.tasks.run_job_launch': {'queue': 'tower_scheduler',
|
'awx.main.scheduler.tasks.run_job_launch': {'queue': 'tower_scheduler', 'routing_key': 'tower_scheduler.job.launch'},
|
||||||
'routing_key': 'tower_scheduler.job.launch'},
|
'awx.main.scheduler.tasks.run_job_complete': {'queue': 'tower_scheduler', 'routing_key': 'tower_scheduler.job.complete'},
|
||||||
'awx.main.scheduler.tasks.run_job_complete': {'queue': 'tower_scheduler',
|
'awx.main.tasks.cluster_node_heartbeat': {'queue': 'default', 'routing_key': 'cluster.heartbeat'},
|
||||||
'routing_key': 'tower_scheduler.job.complete'},
|
'awx.main.tasks.purge_old_stdout_files': {'queue': 'default', 'routing_key': 'cluster.heartbeat'},
|
||||||
'awx.main.tasks.cluster_node_heartbeat': {'queue': 'default',
|
}
|
||||||
'routing_key': 'cluster.heartbeat'},
|
|
||||||
'awx.main.tasks.purge_old_stdout_files': {'queue': 'default',
|
|
||||||
'routing_key': 'cluster.heartbeat'}}
|
|
||||||
|
|
||||||
CELERYBEAT_SCHEDULE = {
|
CELERY_BEAT_SCHEDULE = {
|
||||||
'tower_scheduler': {
|
'tower_scheduler': {
|
||||||
'task': 'awx.main.tasks.awx_periodic_scheduler',
|
'task': 'awx.main.tasks.awx_periodic_scheduler',
|
||||||
'schedule': timedelta(seconds=30),
|
'schedule': timedelta(seconds=30),
|
||||||
@@ -491,22 +490,22 @@ else:
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Social Auth configuration.
|
# Social Auth configuration.
|
||||||
SOCIAL_AUTH_STRATEGY = 'awx.sso.strategies.django_strategy.AWXDjangoStrategy'
|
SOCIAL_AUTH_STRATEGY = 'social_django.strategy.DjangoStrategy'
|
||||||
SOCIAL_AUTH_STORAGE = 'social.apps.django_app.default.models.DjangoStorage'
|
SOCIAL_AUTH_STORAGE = 'social_django.models.DjangoStorage'
|
||||||
SOCIAL_AUTH_USER_MODEL = AUTH_USER_MODEL # noqa
|
SOCIAL_AUTH_USER_MODEL = AUTH_USER_MODEL # noqa
|
||||||
SOCIAL_AUTH_PIPELINE = (
|
SOCIAL_AUTH_PIPELINE = (
|
||||||
'social.pipeline.social_auth.social_details',
|
'social_core.pipeline.social_auth.social_details',
|
||||||
'social.pipeline.social_auth.social_uid',
|
'social_core.pipeline.social_auth.social_uid',
|
||||||
'social.pipeline.social_auth.auth_allowed',
|
'social_core.pipeline.social_auth.auth_allowed',
|
||||||
'social.pipeline.social_auth.social_user',
|
'social_core.pipeline.social_auth.social_user',
|
||||||
'social.pipeline.user.get_username',
|
'social_core.pipeline.user.get_username',
|
||||||
'social.pipeline.social_auth.associate_by_email',
|
'social_core.pipeline.social_auth.associate_by_email',
|
||||||
'social.pipeline.user.create_user',
|
'social_core.pipeline.user.create_user',
|
||||||
'awx.sso.pipeline.check_user_found_or_created',
|
'awx.sso.pipeline.check_user_found_or_created',
|
||||||
'social.pipeline.social_auth.associate_user',
|
'social_core.pipeline.social_auth.associate_user',
|
||||||
'social.pipeline.social_auth.load_extra_data',
|
'social_core.pipeline.social_auth.load_extra_data',
|
||||||
'awx.sso.pipeline.set_is_active_for_new_user',
|
'awx.sso.pipeline.set_is_active_for_new_user',
|
||||||
'social.pipeline.user.user_details',
|
'social_core.pipeline.user.user_details',
|
||||||
'awx.sso.pipeline.prevent_inactive_login',
|
'awx.sso.pipeline.prevent_inactive_login',
|
||||||
'awx.sso.pipeline.update_user_orgs',
|
'awx.sso.pipeline.update_user_orgs',
|
||||||
'awx.sso.pipeline.update_user_teams',
|
'awx.sso.pipeline.update_user_teams',
|
||||||
|
|||||||
@@ -39,13 +39,14 @@ SESSION_COOKIE_SECURE = False
|
|||||||
CSRF_COOKIE_SECURE = False
|
CSRF_COOKIE_SECURE = False
|
||||||
|
|
||||||
# Override django.template.loaders.cached.Loader in defaults.py
|
# Override django.template.loaders.cached.Loader in defaults.py
|
||||||
TEMPLATE_LOADERS = (
|
template = next((tpl_backend for tpl_backend in TEMPLATES if tpl_backend['NAME'] == 'default'), None) # noqa
|
||||||
|
template['OPTIONS']['loaders'] = (
|
||||||
'django.template.loaders.filesystem.Loader',
|
'django.template.loaders.filesystem.Loader',
|
||||||
'django.template.loaders.app_directories.Loader',
|
'django.template.loaders.app_directories.Loader',
|
||||||
)
|
)
|
||||||
|
|
||||||
# Disable capturing all SQL queries when running celeryd in development.
|
# Disable capturing all SQL queries when running celeryd in development.
|
||||||
if 'celeryd' in sys.argv:
|
if 'celery' in sys.argv:
|
||||||
SQL_DEBUG = False
|
SQL_DEBUG = False
|
||||||
|
|
||||||
CELERYD_HIJACK_ROOT_LOGGER = False
|
CELERYD_HIJACK_ROOT_LOGGER = False
|
||||||
@@ -123,11 +124,11 @@ except ImportError:
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
CLUSTER_HOST_ID = socket.gethostname()
|
CLUSTER_HOST_ID = socket.gethostname()
|
||||||
CELERY_ROUTES['awx.main.tasks.cluster_node_heartbeat'] = {'queue': CLUSTER_HOST_ID, 'routing_key': CLUSTER_HOST_ID}
|
CELERY_TASK_ROUTES['awx.main.tasks.cluster_node_heartbeat'] = {'queue': CLUSTER_HOST_ID, 'routing_key': CLUSTER_HOST_ID}
|
||||||
# Production only runs this schedule on controlling nodes
|
# Production only runs this schedule on controlling nodes
|
||||||
# but development will just run it on all nodes
|
# but development will just run it on all nodes
|
||||||
CELERY_ROUTES['awx.main.tasks.awx_isolated_heartbeat'] = {'queue': CLUSTER_HOST_ID, 'routing_key': CLUSTER_HOST_ID}
|
CELERY_TASK_ROUTES['awx.main.tasks.awx_isolated_heartbeat'] = {'queue': CLUSTER_HOST_ID, 'routing_key': CLUSTER_HOST_ID}
|
||||||
CELERYBEAT_SCHEDULE['isolated_heartbeat'] = {
|
CELERY_BEAT_SCHEDULE['isolated_heartbeat'] = {
|
||||||
'task': 'awx.main.tasks.awx_isolated_heartbeat',
|
'task': 'awx.main.tasks.awx_isolated_heartbeat',
|
||||||
'schedule': timedelta(seconds = AWX_ISOLATED_PERIODIC_CHECK),
|
'schedule': timedelta(seconds = AWX_ISOLATED_PERIODIC_CHECK),
|
||||||
'options': {'expires': AWX_ISOLATED_PERIODIC_CHECK * 2,}
|
'options': {'expires': AWX_ISOLATED_PERIODIC_CHECK * 2,}
|
||||||
@@ -135,7 +136,7 @@ CELERYBEAT_SCHEDULE['isolated_heartbeat'] = {
|
|||||||
|
|
||||||
# Supervisor service name dictionary used for programatic restart
|
# Supervisor service name dictionary used for programatic restart
|
||||||
SERVICE_NAME_DICT = {
|
SERVICE_NAME_DICT = {
|
||||||
"celery": "celeryd",
|
"celery": "celery",
|
||||||
"callback": "receiver",
|
"callback": "receiver",
|
||||||
"runworker": "channels",
|
"runworker": "channels",
|
||||||
"uwsgi": "uwsgi",
|
"uwsgi": "uwsgi",
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
# MISC PROJECT SETTINGS
|
# MISC PROJECT SETTINGS
|
||||||
###############################################################################
|
###############################################################################
|
||||||
import os
|
import os
|
||||||
|
import urllib
|
||||||
|
|
||||||
|
|
||||||
def patch_broken_pipe_error():
|
def patch_broken_pipe_error():
|
||||||
"""Monkey Patch BaseServer.handle_error to not write
|
"""Monkey Patch BaseServer.handle_error to not write
|
||||||
@@ -51,7 +53,7 @@ MANAGERS = ADMINS
|
|||||||
# Database settings to use PostgreSQL for development.
|
# Database settings to use PostgreSQL for development.
|
||||||
DATABASES = {
|
DATABASES = {
|
||||||
'default': {
|
'default': {
|
||||||
'ENGINE': 'transaction_hooks.backends.postgresql_psycopg2',
|
'ENGINE': 'django.db.backends.postgresql',
|
||||||
'NAME': 'awx-dev',
|
'NAME': 'awx-dev',
|
||||||
'USER': 'awx-dev',
|
'USER': 'awx-dev',
|
||||||
'PASSWORD': 'AWXsome1',
|
'PASSWORD': 'AWXsome1',
|
||||||
@@ -67,7 +69,7 @@ DATABASES = {
|
|||||||
if is_testing(sys.argv):
|
if is_testing(sys.argv):
|
||||||
DATABASES = {
|
DATABASES = {
|
||||||
'default': {
|
'default': {
|
||||||
'ENGINE': 'transaction_hooks.backends.sqlite3',
|
'ENGINE': 'django.db.backends.sqlite3',
|
||||||
'NAME': os.path.join(BASE_DIR, 'awx.sqlite3'),
|
'NAME': os.path.join(BASE_DIR, 'awx.sqlite3'),
|
||||||
'TEST': {
|
'TEST': {
|
||||||
# Test database cannot be :memory: for celery/inventory tests.
|
# Test database cannot be :memory: for celery/inventory tests.
|
||||||
@@ -79,15 +81,15 @@ if is_testing(sys.argv):
|
|||||||
MONGO_DB = 'system_tracking_test'
|
MONGO_DB = 'system_tracking_test'
|
||||||
|
|
||||||
# Celery AMQP configuration.
|
# Celery AMQP configuration.
|
||||||
BROKER_URL = "amqp://{}:{}@{}/{}".format(os.environ.get("RABBITMQ_USER"),
|
CELERY_BROKER_URL = "amqp://{}:{}@{}/{}".format(os.environ.get("RABBITMQ_USER"),
|
||||||
os.environ.get("RABBITMQ_PASS"),
|
os.environ.get("RABBITMQ_PASS"),
|
||||||
os.environ.get("RABBITMQ_HOST"),
|
os.environ.get("RABBITMQ_HOST"),
|
||||||
os.environ.get("RABBITMQ_VHOST"))
|
urllib.quote(os.environ.get("RABBITMQ_VHOST", "/"), safe=''))
|
||||||
|
|
||||||
CHANNEL_LAYERS = {
|
CHANNEL_LAYERS = {
|
||||||
'default': {'BACKEND': 'asgi_amqp.AMQPChannelLayer',
|
'default': {'BACKEND': 'asgi_rabbitmq.RabbitmqChannelLayer',
|
||||||
'ROUTING': 'awx.main.routing.channel_routing',
|
'ROUTING': 'awx.main.routing.channel_routing',
|
||||||
'CONFIG': {'url': BROKER_URL}}
|
'CONFIG': {'url': CELERY_BROKER_URL}}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Mongo host configuration
|
# Mongo host configuration
|
||||||
@@ -114,6 +116,7 @@ SYSTEM_UUID = '00000000-0000-0000-0000-000000000000'
|
|||||||
# timezone as the operating system.
|
# timezone as the operating system.
|
||||||
# If running in a Windows environment this must be set to the same as your
|
# If running in a Windows environment this must be set to the same as your
|
||||||
# system time zone.
|
# system time zone.
|
||||||
|
USE_TZ = False
|
||||||
TIME_ZONE = None
|
TIME_ZONE = None
|
||||||
|
|
||||||
# Language code for this installation. All choices can be found here:
|
# Language code for this installation. All choices can be found here:
|
||||||
@@ -191,7 +194,7 @@ EMAIL_SUBJECT_PREFIX = '[AWX] '
|
|||||||
LOGGING['handlers']['syslog'] = {
|
LOGGING['handlers']['syslog'] = {
|
||||||
'level': 'WARNING',
|
'level': 'WARNING',
|
||||||
'filters': ['require_debug_false'],
|
'filters': ['require_debug_false'],
|
||||||
'class': 'django.utils.log.NullHandler',
|
'class': 'logging.NullHandler',
|
||||||
'formatter': 'simple',
|
'formatter': 'simple',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -60,8 +60,8 @@ LOGGING['handlers']['rbac_migrations']['filename'] = '/var/log/tower/tower_rbac_
|
|||||||
|
|
||||||
# Supervisor service name dictionary used for programatic restart
|
# Supervisor service name dictionary used for programatic restart
|
||||||
SERVICE_NAME_DICT = {
|
SERVICE_NAME_DICT = {
|
||||||
"beat": "awx-celeryd-beat",
|
"beat": "awx-celery-beat",
|
||||||
"celery": "awx-celeryd",
|
"celery": "awx-celery",
|
||||||
"callback": "awx-callback-receiver",
|
"callback": "awx-callback-receiver",
|
||||||
"channels": "awx-channels-worker",
|
"channels": "awx-channels-worker",
|
||||||
"uwsgi": "awx-uwsgi",
|
"uwsgi": "awx-uwsgi",
|
||||||
|
|||||||
@@ -31,9 +31,9 @@ AWX_PROOT_ENABLED = False
|
|||||||
|
|
||||||
CLUSTER_HOST_ID = "awx"
|
CLUSTER_HOST_ID = "awx"
|
||||||
SYSTEM_UUID = '00000000-0000-0000-0000-000000000000'
|
SYSTEM_UUID = '00000000-0000-0000-0000-000000000000'
|
||||||
CELERY_QUEUES += (Queue(CLUSTER_HOST_ID, Exchange(CLUSTER_HOST_ID), routing_key=CLUSTER_HOST_ID),)
|
CELERY_TASK_QUEUES += (Queue(CLUSTER_HOST_ID, Exchange(CLUSTER_HOST_ID), routing_key=CLUSTER_HOST_ID),)
|
||||||
CELERY_ROUTES['awx.main.tasks.cluster_node_heartbeat'] = {'queue': CLUSTER_HOST_ID, 'routing_key': CLUSTER_HOST_ID}
|
CELERY_TASK_ROUTES['awx.main.tasks.cluster_node_heartbeat'] = {'queue': CLUSTER_HOST_ID, 'routing_key': CLUSTER_HOST_ID}
|
||||||
CELERY_ROUTES['awx.main.tasks.purge_old_stdout_files'] = {'queue': CLUSTER_HOST_ID, 'routing_key': CLUSTER_HOST_ID}
|
CELERY_TASK_ROUTES['awx.main.tasks.purge_old_stdout_files'] = {'queue': CLUSTER_HOST_ID, 'routing_key': CLUSTER_HOST_ID}
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -79,7 +79,7 @@ LOGGING['handlers']['management_playbooks'] = {'class': 'logging.NullHandler'}
|
|||||||
DATABASES = {
|
DATABASES = {
|
||||||
'default': {
|
'default': {
|
||||||
'ATOMIC_REQUESTS': True,
|
'ATOMIC_REQUESTS': True,
|
||||||
'ENGINE': 'transaction_hooks.backends.postgresql_psycopg2',
|
'ENGINE': 'django.db.backends.postgresql',
|
||||||
'NAME': os.getenv("DATABASE_NAME", None),
|
'NAME': os.getenv("DATABASE_NAME", None),
|
||||||
'USER': os.getenv("DATABASE_USER", None),
|
'USER': os.getenv("DATABASE_USER", None),
|
||||||
'PASSWORD': os.getenv("DATABASE_PASSWORD", None),
|
'PASSWORD': os.getenv("DATABASE_PASSWORD", None),
|
||||||
@@ -88,7 +88,7 @@ DATABASES = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BROKER_URL = 'amqp://{}:{}@{}:{}/{}'.format(
|
CELERY_BROKER_URL = 'amqp://{}:{}@{}:{}/{}'.format(
|
||||||
os.getenv("RABBITMQ_USER", None),
|
os.getenv("RABBITMQ_USER", None),
|
||||||
os.getenv("RABBITMQ_PASSWORD", None),
|
os.getenv("RABBITMQ_PASSWORD", None),
|
||||||
os.getenv("RABBITMQ_HOST", None),
|
os.getenv("RABBITMQ_HOST", None),
|
||||||
@@ -98,7 +98,7 @@ BROKER_URL = 'amqp://{}:{}@{}:{}/{}'.format(
|
|||||||
CHANNEL_LAYERS = {
|
CHANNEL_LAYERS = {
|
||||||
'default': {'BACKEND': 'asgi_amqp.AMQPChannelLayer',
|
'default': {'BACKEND': 'asgi_amqp.AMQPChannelLayer',
|
||||||
'ROUTING': 'awx.main.routing.channel_routing',
|
'ROUTING': 'awx.main.routing.channel_routing',
|
||||||
'CONFIG': {'url': BROKER_URL}}
|
'CONFIG': {'url': CELERY_BROKER_URL}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ data:
|
|||||||
DATABASES = {
|
DATABASES = {
|
||||||
'default': {
|
'default': {
|
||||||
'ATOMIC_REQUESTS': True,
|
'ATOMIC_REQUESTS': True,
|
||||||
'ENGINE': 'transaction_hooks.backends.postgresql_psycopg2',
|
'ENGINE': 'django.db.backends.postgresql',
|
||||||
'NAME': "{{ pg_database }}",
|
'NAME': "{{ pg_database }}",
|
||||||
'USER': "{{ pg_username }}",
|
'USER': "{{ pg_username }}",
|
||||||
'PASSWORD': "{{ pg_password }}",
|
'PASSWORD': "{{ pg_password }}",
|
||||||
@@ -73,7 +73,7 @@ data:
|
|||||||
'PORT': "{{ pg_port }}",
|
'PORT': "{{ pg_port }}",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BROKER_URL = 'amqp://{}:{}@{}:{}/{}'.format(
|
CELERY_BROKER_URL = 'amqp://{}:{}@{}:{}/{}'.format(
|
||||||
"awx",
|
"awx",
|
||||||
"abcdefg",
|
"abcdefg",
|
||||||
"localhost",
|
"localhost",
|
||||||
@@ -82,7 +82,7 @@ data:
|
|||||||
CHANNEL_LAYERS = {
|
CHANNEL_LAYERS = {
|
||||||
'default': {'BACKEND': 'asgi_amqp.AMQPChannelLayer',
|
'default': {'BACKEND': 'asgi_amqp.AMQPChannelLayer',
|
||||||
'ROUTING': 'awx.main.routing.channel_routing',
|
'ROUTING': 'awx.main.routing.channel_routing',
|
||||||
'CONFIG': {'url': BROKER_URL}}
|
'CONFIG': {'url': CELERY_BROKER_URL}}
|
||||||
}
|
}
|
||||||
CACHES = {
|
CACHES = {
|
||||||
'default': {
|
'default': {
|
||||||
|
|||||||
@@ -1,28 +1,29 @@
|
|||||||
apache-libcloud==2.0.0
|
apache-libcloud==2.0.0
|
||||||
appdirs==1.4.2
|
appdirs==1.4.2
|
||||||
asgi-amqp==0.4.1
|
asgi-rabbitmq==0.5.4
|
||||||
asgiref==1.0.1
|
asgiref==1.1.2
|
||||||
azure==2.0.0rc6
|
azure==2.0.0rc6
|
||||||
backports.ssl-match-hostname==3.5.0.1
|
backports.ssl-match-hostname==3.5.0.1
|
||||||
boto==2.46.1
|
boto==2.46.1
|
||||||
boto3==1.4.4
|
boto3==1.4.4
|
||||||
channels==0.17.3
|
channels==1.1.8
|
||||||
celery==3.1.17
|
celery==4.1
|
||||||
daphne>=0.15.0,<1.0.0
|
daphne==1.3.0
|
||||||
Django==1.8.16
|
Django==1.11.7
|
||||||
django-auth-ldap==1.2.8
|
django-auth-ldap==1.2.8
|
||||||
django-celery==3.1.17
|
django-celery-beat==1.1.0
|
||||||
|
django-celery-results==1.0.1
|
||||||
django-crum==0.7.1
|
django-crum==0.7.1
|
||||||
django-extensions==1.7.8
|
django-extensions==1.7.8
|
||||||
django-jsonfield==1.0.1
|
django-jsonfield==1.0.1
|
||||||
django-polymorphic==1.2
|
django-polymorphic==1.3
|
||||||
django-pglocks==1.0.2
|
django-pglocks==1.0.2
|
||||||
django-radius==1.1.0
|
django-radius==1.1.0
|
||||||
django-solo==1.1.2
|
django-solo==1.1.2
|
||||||
django-split-settings==0.2.5
|
django-split-settings==0.2.5
|
||||||
django-taggit==0.22.1
|
django-taggit==0.22.1
|
||||||
django-transaction-hooks==0.2
|
django-transaction-hooks==0.2
|
||||||
djangorestframework==3.3.3
|
djangorestframework==3.7.3
|
||||||
djangorestframework-yaml==1.0.3
|
djangorestframework-yaml==1.0.3
|
||||||
gevent-websocket==0.9.5
|
gevent-websocket==0.9.5
|
||||||
irc==15.1.1
|
irc==15.1.1
|
||||||
@@ -33,6 +34,7 @@ ordereddict==1.1
|
|||||||
pexpect==4.2.1
|
pexpect==4.2.1
|
||||||
psphere==0.5.2
|
psphere==0.5.2
|
||||||
psutil==5.2.2
|
psutil==5.2.2
|
||||||
|
psycopg2==2.7.3.2
|
||||||
pycrypto==2.6.1
|
pycrypto==2.6.1
|
||||||
pygerduty==0.35.2
|
pygerduty==0.35.2
|
||||||
pyOpenSSL==17.0.0
|
pyOpenSSL==17.0.0
|
||||||
@@ -41,7 +43,8 @@ python-logstash==0.4.6
|
|||||||
python-memcached==1.58
|
python-memcached==1.58
|
||||||
python-radius==1.0
|
python-radius==1.0
|
||||||
python-saml==2.2.1
|
python-saml==2.2.1
|
||||||
python-social-auth==0.2.21
|
social-auth-core==1.5.0
|
||||||
|
social-auth-app-django==2.0.0
|
||||||
pyvmomi==6.5
|
pyvmomi==6.5
|
||||||
redbaron==0.6.3
|
redbaron==0.6.3
|
||||||
requests-futures==0.9.7
|
requests-futures==0.9.7
|
||||||
@@ -50,7 +53,7 @@ shade==1.20.0
|
|||||||
slackclient==1.0.6
|
slackclient==1.0.6
|
||||||
tacacs_plus==1.0
|
tacacs_plus==1.0
|
||||||
twilio==6.1.0
|
twilio==6.1.0
|
||||||
twisted==16.6.0
|
twisted==17.9.0
|
||||||
uWSGI==2.0.14
|
uWSGI==2.0.14
|
||||||
xmltodict==0.11.0
|
xmltodict==0.11.0
|
||||||
pip==9.0.1
|
pip==9.0.1
|
||||||
|
|||||||
@@ -5,15 +5,15 @@
|
|||||||
# pip-compile --output-file requirements/requirements.txt requirements/requirements.in
|
# pip-compile --output-file requirements/requirements.txt requirements/requirements.in
|
||||||
#
|
#
|
||||||
adal==0.4.5 # via msrestazure
|
adal==0.4.5 # via msrestazure
|
||||||
amqp==1.4.9 # via kombu
|
amqp==2.2.2 # via kombu
|
||||||
anyjson==0.3.3 # via kombu
|
|
||||||
apache-libcloud==2.0.0
|
apache-libcloud==2.0.0
|
||||||
appdirs==1.4.2
|
appdirs==1.4.2
|
||||||
asgi-amqp==0.4.1
|
asgi-rabbitmq==0.5.4
|
||||||
asgiref==1.0.1
|
asgiref==1.1.2
|
||||||
asn1crypto==0.22.0 # via cryptography
|
asn1crypto==0.22.0 # via cryptography
|
||||||
attrs==17.2.0 # via service-identity
|
attrs==17.2.0 # via automat, service-identity
|
||||||
autobahn==17.6.1 # via daphne
|
autobahn==17.10.1 # via daphne
|
||||||
|
automat==0.6.0 # via twisted
|
||||||
azure-batch==1.0.0 # via azure
|
azure-batch==1.0.0 # via azure
|
||||||
azure-common[autorest]==1.1.4 # via azure-batch, azure-mgmt-batch, azure-mgmt-compute, azure-mgmt-keyvault, azure-mgmt-logic, azure-mgmt-network, azure-mgmt-redis, azure-mgmt-resource, azure-mgmt-scheduler, azure-mgmt-storage, azure-servicebus, azure-servicemanagement-legacy, azure-storage
|
azure-common[autorest]==1.1.4 # via azure-batch, azure-mgmt-batch, azure-mgmt-compute, azure-mgmt-keyvault, azure-mgmt-logic, azure-mgmt-network, azure-mgmt-redis, azure-mgmt-resource, azure-mgmt-scheduler, azure-mgmt-storage, azure-servicebus, azure-servicemanagement-legacy, azure-storage
|
||||||
azure-mgmt-batch==1.0.0 # via azure-mgmt
|
azure-mgmt-batch==1.0.0 # via azure-mgmt
|
||||||
@@ -36,47 +36,52 @@ babel==2.3.4 # via osc-lib, oslo.i18n, python-cinderclient, python-
|
|||||||
backports.functools-lru-cache==1.4 # via jaraco.functools
|
backports.functools-lru-cache==1.4 # via jaraco.functools
|
||||||
backports.ssl-match-hostname==3.5.0.1
|
backports.ssl-match-hostname==3.5.0.1
|
||||||
baron==0.6.6 # via redbaron
|
baron==0.6.6 # via redbaron
|
||||||
billiard==3.3.0.23 # via celery
|
billiard==3.5.0.3 # via celery
|
||||||
boto3==1.4.4
|
boto3==1.4.4
|
||||||
boto==2.46.1
|
boto==2.46.1
|
||||||
botocore==1.5.72 # via boto3, s3transfer
|
botocore==1.5.72 # via boto3, s3transfer
|
||||||
celery==3.1.17
|
cached-property==1.3.1 # via asgi-rabbitmq
|
||||||
#certifi==2017.4.17 # via msrest
|
celery==4.1
|
||||||
|
#certifi==2017.11.5 # via msrest
|
||||||
cffi==1.10.0 # via cryptography
|
cffi==1.10.0 # via cryptography
|
||||||
channels==0.17.3
|
channels==1.1.8
|
||||||
cliff==2.7.0 # via osc-lib, python-designateclient, python-neutronclient, python-openstackclient
|
cliff==2.7.0 # via osc-lib, python-designateclient, python-neutronclient, python-openstackclient
|
||||||
cmd2==0.7.2 # via cliff
|
cmd2==0.7.2 # via cliff
|
||||||
constantly==15.1.0 # via twisted
|
constantly==15.1.0 # via twisted
|
||||||
cryptography==1.9 # via adal, azure-storage, pyopenssl, secretstorage, twilio
|
cryptography==1.9 # via adal, azure-storage, pyopenssl, secretstorage, twilio
|
||||||
daphne==0.15.0
|
daphne==1.3.0
|
||||||
debtcollector==1.15.0 # via oslo.config, oslo.utils, python-designateclient, python-keystoneclient, python-neutronclient
|
debtcollector==1.15.0 # via oslo.config, oslo.utils, python-designateclient, python-keystoneclient, python-neutronclient
|
||||||
decorator==4.0.11 # via shade
|
decorator==4.0.11 # via shade
|
||||||
defusedxml==0.4.1 # via python-saml
|
defusedxml==0.4.1 # via python-saml
|
||||||
deprecation==1.0.1 # via openstacksdk
|
deprecation==1.0.1 # via openstacksdk
|
||||||
django-auth-ldap==1.2.8
|
django-auth-ldap==1.2.8
|
||||||
django-celery==3.1.17
|
django-celery-beat==1.1.0
|
||||||
|
django-celery-results==1.0.1
|
||||||
django-crum==0.7.1
|
django-crum==0.7.1
|
||||||
django-extensions==1.7.8
|
django-extensions==1.7.8
|
||||||
django-jsonfield==1.0.1
|
django-jsonfield==1.0.1
|
||||||
django-polymorphic==1.2
|
|
||||||
django-pglocks==1.0.2
|
django-pglocks==1.0.2
|
||||||
|
django-polymorphic==1.3
|
||||||
django-radius==1.1.0
|
django-radius==1.1.0
|
||||||
django-solo==1.1.2
|
django-solo==1.1.2
|
||||||
django-split-settings==0.2.5
|
django-split-settings==0.2.5
|
||||||
django-taggit==0.22.1
|
django-taggit==0.22.1
|
||||||
django-transaction-hooks==0.2
|
django-transaction-hooks==0.2
|
||||||
django==1.8.16 # via channels, django-auth-ldap, django-crum, django-split-settings, django-transaction-hooks
|
django==1.11.7
|
||||||
djangorestframework-yaml==1.0.3
|
djangorestframework-yaml==1.0.3
|
||||||
djangorestframework==3.3.3
|
djangorestframework==3.7.3
|
||||||
#docutils==0.12 # via botocore
|
#dm.xmlsec.binding==1.3.2 # via python-saml
|
||||||
|
#docutils==0.14 # via botocore
|
||||||
dogpile.cache==0.6.3 # via python-ironicclient, shade
|
dogpile.cache==0.6.3 # via python-ironicclient, shade
|
||||||
enum34==1.1.6 # via cryptography, msrest
|
enum34==1.1.6 # via cryptography, msrest
|
||||||
|
ephem==3.7.6.0 # via django-celery-beat
|
||||||
funcsigs==1.0.2 # via debtcollector, oslo.utils
|
funcsigs==1.0.2 # via debtcollector, oslo.utils
|
||||||
functools32==3.2.3.post2 # via jsonschema
|
functools32==3.2.3.post2 # via jsonschema
|
||||||
futures==3.1.1 # via azure-storage, requests-futures, s3transfer, shade
|
futures==3.1.1 # via asgi-rabbitmq, azure-storage, requests-futures, s3transfer, shade
|
||||||
gevent-websocket==0.9.5
|
gevent-websocket==0.9.5
|
||||||
gevent==1.2.2 # via gevent-websocket
|
gevent==1.2.2 # via gevent-websocket
|
||||||
greenlet==0.4.12 # via gevent
|
greenlet==0.4.12 # via gevent
|
||||||
|
hyperlink==17.3.1 # via twisted
|
||||||
idna==2.5 # via cryptography, twilio
|
idna==2.5 # via cryptography, twilio
|
||||||
incremental==17.5.0 # via twisted
|
incremental==17.5.0 # via twisted
|
||||||
inflect==0.2.5 # via jaraco.itertools
|
inflect==0.2.5 # via jaraco.itertools
|
||||||
@@ -93,24 +98,23 @@ jaraco.stream==1.1.2 # via irc
|
|||||||
jaraco.text==1.9.2 # via irc, jaraco.collections
|
jaraco.text==1.9.2 # via irc, jaraco.collections
|
||||||
jmespath==0.9.3 # via boto3, botocore, shade
|
jmespath==0.9.3 # via boto3, botocore, shade
|
||||||
jsonpatch==1.16 # via openstacksdk, shade, warlock
|
jsonpatch==1.16 # via openstacksdk, shade, warlock
|
||||||
jsonpickle==0.9.4 # via asgi-amqp
|
|
||||||
jsonpointer==1.10 # via jsonpatch
|
jsonpointer==1.10 # via jsonpatch
|
||||||
jsonschema==2.6.0
|
jsonschema==2.6.0
|
||||||
keyring==10.3.3 # via msrestazure
|
keyring==10.3.3 # via msrestazure
|
||||||
keystoneauth1==2.21.0 # via openstacksdk, os-client-config, osc-lib, python-cinderclient, python-designateclient, python-glanceclient, python-ironicclient, python-keystoneclient, python-neutronclient, python-novaclient, python-openstackclient, shade
|
keystoneauth1==2.21.0 # via openstacksdk, os-client-config, osc-lib, python-cinderclient, python-designateclient, python-glanceclient, python-ironicclient, python-keystoneclient, python-neutronclient, python-novaclient, python-openstackclient, shade
|
||||||
kombu==3.0.35 # via asgi-amqp, celery
|
kombu==4.1.0 # via celery
|
||||||
lxml==3.8.0 # via pyvmomi
|
lxml==3.8.0 # via dm.xmlsec.binding, pyvmomi
|
||||||
m2crypto==0.25.1
|
m2crypto==0.25.1
|
||||||
markdown==2.6.7
|
markdown==2.6.7
|
||||||
monotonic==1.3 # via oslo.utils
|
monotonic==1.3 # via oslo.utils
|
||||||
more-itertools==3.2.0 # via irc, jaraco.functools, jaraco.itertools
|
more-itertools==3.2.0 # via irc, jaraco.functools, jaraco.itertools
|
||||||
msgpack-python==0.4.8 # via asgi-amqp, oslo.serialization
|
msgpack-python==0.4.8 # via asgi-rabbitmq, oslo.serialization
|
||||||
msrest==0.4.10 # via azure-common, msrestazure
|
msrest==0.4.10 # via azure-common, msrestazure
|
||||||
msrestazure==0.4.9 # via azure-common
|
msrestazure==0.4.9 # via azure-common
|
||||||
munch==2.1.1 # via shade
|
munch==2.1.1 # via shade
|
||||||
netaddr==0.7.19 # via oslo.config, oslo.utils, pyrad, python-neutronclient
|
netaddr==0.7.19 # via oslo.config, oslo.utils, pyrad, python-neutronclient
|
||||||
netifaces==0.10.6 # via oslo.utils, shade
|
netifaces==0.10.6 # via oslo.utils, shade
|
||||||
oauthlib==2.0.2 # via python-social-auth, requests-oauthlib
|
oauthlib==2.0.2 # via requests-oauthlib, social-auth-core
|
||||||
openstacksdk==0.9.17 # via python-openstackclient
|
openstacksdk==0.9.17 # via python-openstackclient
|
||||||
ordereddict==1.1
|
ordereddict==1.1
|
||||||
os-client-config==1.27.0 # via openstacksdk, osc-lib, python-neutronclient, shade
|
os-client-config==1.27.0 # via openstacksdk, osc-lib, python-neutronclient, shade
|
||||||
@@ -119,22 +123,22 @@ oslo.config==4.6.0 # via python-keystoneclient
|
|||||||
oslo.i18n==3.15.3 # via osc-lib, oslo.config, oslo.utils, python-cinderclient, python-glanceclient, python-ironicclient, python-keystoneclient, python-neutronclient, python-novaclient, python-openstackclient
|
oslo.i18n==3.15.3 # via osc-lib, oslo.config, oslo.utils, python-cinderclient, python-glanceclient, python-ironicclient, python-keystoneclient, python-neutronclient, python-novaclient, python-openstackclient
|
||||||
oslo.serialization==2.18.0 # via python-ironicclient, python-keystoneclient, python-neutronclient, python-novaclient
|
oslo.serialization==2.18.0 # via python-ironicclient, python-keystoneclient, python-neutronclient, python-novaclient
|
||||||
oslo.utils==3.26.0 # via osc-lib, oslo.serialization, python-cinderclient, python-designateclient, python-glanceclient, python-ironicclient, python-keystoneclient, python-neutronclient, python-novaclient, python-openstackclient
|
oslo.utils==3.26.0 # via osc-lib, oslo.serialization, python-cinderclient, python-designateclient, python-glanceclient, python-ironicclient, python-keystoneclient, python-neutronclient, python-novaclient, python-openstackclient
|
||||||
packaging==16.8 # via setuptools
|
|
||||||
pbr==3.1.1 # via cliff, debtcollector, keystoneauth1, openstacksdk, osc-lib, oslo.i18n, oslo.serialization, oslo.utils, positional, python-cinderclient, python-designateclient, python-glanceclient, python-ironicclient, python-keystoneclient, python-neutronclient, python-novaclient, python-openstackclient, requestsexceptions, shade, stevedore
|
pbr==3.1.1 # via cliff, debtcollector, keystoneauth1, openstacksdk, osc-lib, oslo.i18n, oslo.serialization, oslo.utils, positional, python-cinderclient, python-designateclient, python-glanceclient, python-ironicclient, python-keystoneclient, python-neutronclient, python-novaclient, python-openstackclient, requestsexceptions, shade, stevedore
|
||||||
pexpect==4.2.1
|
pexpect==4.2.1
|
||||||
|
pika==0.11.0 # via asgi-rabbitmq
|
||||||
positional==1.1.1 # via keystoneauth1, python-keystoneclient
|
positional==1.1.1 # via keystoneauth1, python-keystoneclient
|
||||||
prettytable==0.7.2 # via cliff, python-cinderclient, python-glanceclient, python-ironicclient, python-novaclient
|
prettytable==0.7.2 # via cliff, python-cinderclient, python-glanceclient, python-ironicclient, python-novaclient
|
||||||
psphere==0.5.2
|
psphere==0.5.2
|
||||||
psutil==5.2.2
|
psutil==5.2.2
|
||||||
psycopg2==2.7.1
|
psycopg2==2.7.3.2
|
||||||
ptyprocess==0.5.1 # via pexpect
|
ptyprocess==0.5.1 # via pexpect
|
||||||
pyasn1-modules==0.0.9 # via service-identity
|
pyasn1-modules==0.0.9 # via service-identity
|
||||||
pyasn1==0.2.3 # via pyasn1-modules, service-identity
|
pyasn1==0.2.3 # via pyasn1-modules, service-identity
|
||||||
pycparser==2.17 # via cffi
|
pycparser==2.17 # via cffi
|
||||||
pycrypto==2.6.1
|
pycrypto==2.6.1
|
||||||
pygerduty==0.35.2
|
pygerduty==0.35.2
|
||||||
pyjwt==1.5.0 # via adal, python-social-auth, twilio
|
pyjwt==1.5.0 # via adal, social-auth-core, twilio
|
||||||
pyopenssl==17.0.0 # via pyvmomi, service-identity, twilio
|
pyopenssl==17.0.0
|
||||||
pyparsing==2.2.0
|
pyparsing==2.2.0
|
||||||
pyrad==2.1 # via django-radius
|
pyrad==2.1 # via django-radius
|
||||||
python-cinderclient==2.2.0 # via python-openstackclient, shade
|
python-cinderclient==2.2.0 # via python-openstackclient, shade
|
||||||
@@ -148,18 +152,17 @@ python-logstash==0.4.6
|
|||||||
python-memcached==1.58
|
python-memcached==1.58
|
||||||
python-neutronclient==6.3.0 # via shade
|
python-neutronclient==6.3.0 # via shade
|
||||||
python-novaclient==9.0.1 # via python-openstackclient, shade
|
python-novaclient==9.0.1 # via python-openstackclient, shade
|
||||||
python-openid==2.2.5 # via python-social-auth
|
python-openid==2.2.5 # via social-auth-core
|
||||||
python-openstackclient==3.11.0 # via python-ironicclient
|
python-openstackclient==3.11.0 # via python-ironicclient
|
||||||
python-radius==1.0
|
python-radius==1.0
|
||||||
python-saml==2.2.1
|
python-saml==2.2.1
|
||||||
python-social-auth==0.2.21
|
pytz==2017.3 # via babel, celery, django, irc, oslo.serialization, oslo.utils, tempora, twilio
|
||||||
pytz==2017.2 # via babel, celery, irc, oslo.serialization, oslo.utils, tempora, twilio
|
|
||||||
pyvmomi==6.5
|
pyvmomi==6.5
|
||||||
pyyaml==3.12 # via cliff, djangorestframework-yaml, os-client-config, oslo.config, psphere, python-ironicclient
|
pyyaml==3.12 # via cliff, djangorestframework-yaml, os-client-config, oslo.config, psphere, python-ironicclient
|
||||||
redbaron==0.6.3
|
redbaron==0.6.3
|
||||||
requests-futures==0.9.7
|
requests-futures==0.9.7
|
||||||
requests-oauthlib==0.8.0 # via msrest, python-social-auth
|
requests-oauthlib==0.8.0 # via msrest, social-auth-core
|
||||||
requests==2.14.2 # via adal, apache-libcloud, azure-servicebus, azure-servicemanagement-legacy, azure-storage, keystoneauth1, msrest, python-designateclient, python-glanceclient, python-ironicclient, python-keystoneclient, python-neutronclient, python-social-auth, pyvmomi, requests-futures, requests-oauthlib, slackclient, twilio
|
requests==2.14.2 # via adal, apache-libcloud, azure-servicebus, azure-servicemanagement-legacy, azure-storage, keystoneauth1, msrest, python-designateclient, python-glanceclient, python-ironicclient, python-keystoneclient, python-neutronclient, pyvmomi, requests-futures, requests-oauthlib, slackclient, social-auth-core, twilio
|
||||||
requestsexceptions==1.2.0 # via os-client-config, shade
|
requestsexceptions==1.2.0 # via os-client-config, shade
|
||||||
rfc3986==1.0.0 # via oslo.config
|
rfc3986==1.0.0 # via oslo.config
|
||||||
rply==0.7.4 # via baron
|
rply==0.7.4 # via baron
|
||||||
@@ -168,23 +171,26 @@ secretstorage==2.3.1 # via keyring
|
|||||||
service-identity==16.0.0
|
service-identity==16.0.0
|
||||||
shade==1.20.0
|
shade==1.20.0
|
||||||
simplejson==3.11.1 # via osc-lib, python-cinderclient, python-neutronclient, python-novaclient
|
simplejson==3.11.1 # via osc-lib, python-cinderclient, python-neutronclient, python-novaclient
|
||||||
six==1.10.0 # via asgi-amqp, asgiref, autobahn, cliff, cmd2, cryptography, debtcollector, django-extensions, irc, jaraco.classes, jaraco.collections, jaraco.itertools, jaraco.logging, jaraco.stream, keystoneauth1, more-itertools, munch, openstacksdk, osc-lib, oslo.config, oslo.i18n, oslo.serialization, oslo.utils, packaging, pygerduty, pyopenssl, pyrad, python-cinderclient, python-dateutil, python-designateclient, python-glanceclient, python-ironicclient, python-keystoneclient, python-memcached, python-neutronclient, python-novaclient, python-openstackclient, python-social-auth, pyvmomi, setuptools, shade, slackclient, stevedore, tacacs-plus, tempora, twilio, txaio, warlock, websocket-client
|
six==1.10.0 # via asgiref, autobahn, automat, cliff, cmd2, cryptography, debtcollector, django-extensions, irc, jaraco.classes, jaraco.collections, jaraco.itertools, jaraco.logging, jaraco.stream, keystoneauth1, more-itertools, munch, openstacksdk, osc-lib, oslo.config, oslo.i18n, oslo.serialization, oslo.utils, pygerduty, pyopenssl, pyrad, python-cinderclient, python-dateutil, python-designateclient, python-glanceclient, python-ironicclient, python-keystoneclient, python-memcached, python-neutronclient, python-novaclient, python-openstackclient, pyvmomi, shade, slackclient, social-auth-app-django, social-auth-core, stevedore, tacacs-plus, tempora, twilio, txaio, warlock, websocket-client
|
||||||
slackclient==1.0.6
|
slackclient==1.0.6
|
||||||
|
social-auth-app-django==2.0.0
|
||||||
|
social-auth-core==1.5.0
|
||||||
stevedore==1.23.0 # via cliff, keystoneauth1, openstacksdk, osc-lib, oslo.config, python-designateclient, python-keystoneclient
|
stevedore==1.23.0 # via cliff, keystoneauth1, openstacksdk, osc-lib, oslo.config, python-designateclient, python-keystoneclient
|
||||||
suds==0.4 # via psphere
|
suds==0.4 # via psphere
|
||||||
tacacs_plus==1.0
|
tacacs_plus==1.0
|
||||||
tempora==1.7 # via irc, jaraco.logging
|
tempora==1.7 # via irc, jaraco.logging
|
||||||
twilio==6.1.0
|
twilio==6.1.0
|
||||||
twisted==16.6.0
|
twisted==17.9.0
|
||||||
txaio==2.8.0 # via autobahn
|
txaio==2.8.2 # via autobahn
|
||||||
typing==3.6.1 # via m2crypto
|
typing==3.6.2 # via m2crypto
|
||||||
unicodecsv==0.14.1 # via cliff
|
unicodecsv==0.14.1 # via cliff
|
||||||
uwsgi==2.0.14
|
uwsgi==2.0.14
|
||||||
|
vine==1.1.4 # via amqp
|
||||||
warlock==1.2.0 # via python-glanceclient
|
warlock==1.2.0 # via python-glanceclient
|
||||||
websocket-client==0.44.0 # via slackclient
|
websocket-client==0.44.0 # via slackclient
|
||||||
wrapt==1.10.10 # via debtcollector, positional, python-glanceclient
|
wrapt==1.10.10 # via debtcollector, positional, python-glanceclient
|
||||||
xmltodict==0.11.0
|
xmltodict==0.11.0
|
||||||
zope.interface==4.4.2 # via twisted
|
zope.interface==4.4.3 # via twisted
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
pip==9.0.1
|
pip==9.0.1
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ minfds = 4096
|
|||||||
nodaemon=true
|
nodaemon=true
|
||||||
|
|
||||||
[program:celeryd]
|
[program:celeryd]
|
||||||
command = python manage.py celeryd -l DEBUG -B --autoreload --autoscale=20,3 --schedule=/celerybeat-schedule -Q tower_scheduler,tower_broadcast_all,%(ENV_AWX_GROUP_QUEUES)s,%(ENV_HOSTNAME)s -n celery@%(ENV_HOSTNAME)s
|
command = celery -l DEBUG -B --autoreload --autoscale=20,3 --schedule=/celerybeat-schedule -Q tower_scheduler,tower_broadcast_all,%(ENV_AWX_GROUP_QUEUES)s,%(ENV_HOSTNAME)s -n celery@%(ENV_HOSTNAME)s
|
||||||
autostart = true
|
autostart = true
|
||||||
autorestart = true
|
autorestart = true
|
||||||
redirect_stderr=true
|
redirect_stderr=true
|
||||||
|
|||||||
Reference in New Issue
Block a user