Skip to content
Snippets Groups Projects
config.py 1.57 KiB
import logging
import os
from inventory_provider import config
import redis.sentinel

logger = logging.getLogger(__name__)

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']
    if 'sentinel_socket_timeout' in params:
        broker_transport_options['sentinel_socket_timeout'] \
            = params['sentinel_socket_timeout']
else:
    params = inventory_provider_config['redis']
    _broker_scheme = 'redis'

if 'redis_socket_timeout' in params:
    broker_transport_options['redis_socket_timeout'] \
        = params['redis_socket_timeout']

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

_broker_db_index = params.get('index', 1)

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