Skip to content
Snippets Groups Projects
config.py 1.65 KiB
import logging
import os
from inventory_provider import config

logger = logging.getLogger(__name__)
DEFAULT_CELERY_DB_INDEX = 1
DEFAULT_SENTINEL_SOCKET_TIMEOUT = 0.5
DEFAULT_REDIS_SOCKET_TIMEOUT = 5.0

assert os.path.isfile(os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME']), (
        'config file %r not found' %
        os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME'])

broker_transport_options = result_backend_transport_options = dict()

with open(os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME']) as f:
    logging.info(
        'loading config from: %r'
        % os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME'])
    inventory_provider_config = config.load(f)

if 'sentinel' in inventory_provider_config:
    params = inventory_provider_config['sentinel']
    _broker_scheme = 'sentinel'
    broker_transport_options['master_name'] = params['name']
    sentinel_socket_timeout = params.get(
        'sentinel_socket_timeout', DEFAULT_SENTINEL_SOCKET_TIMEOUT)
else:
    params = inventory_provider_config['redis']
    _broker_scheme = 'redis'

redis_socket_timeout = params.get(
    'redis_socket_timeout', DEFAULT_REDIS_SOCKET_TIMEOUT)

_broker_hostname = params['hostname']
_broker_port = params['port']

_broker_db_index = params.get('celery-db-index', DEFAULT_CELERY_DB_INDEX)

if ':' in _broker_hostname:
    # assume this means hostname is an ipv6 address
    _broker_hostname = f'[{_broker_hostname}]'

broker_url = result_backend = (f'{_broker_scheme}://{_broker_hostname}'
                               f':{_broker_port}/{_broker_db_index}')
logger.debug('broker_url: %r' % broker_url)

task_eager_propagates = True
task_track_started = True
worker_send_task_events = True