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