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