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