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