Skip to content
Snippets Groups Projects
Commit fae6762b authored by Erik Reid's avatar Erik Reid
Browse files

use shared config module for initializing

load config from filename in INVENTORY_PROVIDER_CONFIG_FILENAME
parent 1e7ece9c
No related branches found
No related tags found
No related merge requests found
import logging import logging
import os import os
from inventory_provider import config
import redis.sentinel import redis.sentinel
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
broker_hostname = os.getenv('BROKER_HOSTNAME') assert os.path.isfile(os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME']), (
assert broker_hostname is not None 'config file %r not found' %
broker_port = int(os.getenv('BROKER_PORT')) os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME'])
broker_db_index = int(os.getenv('CELERY_DB_INDEX'))
broker_scheme = os.getenv('BROKER_SCHEME', 'redis') with open(os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME']) as f:
assert broker_scheme in ('redis', 'sentinel'), 'unsupported broker scheme' logging.info(
'loading config from: %r'
% os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME'])
inventory_provider_config = config.load(f)
if broker_scheme == 'sentinel': if 'sentinel' in inventory_provider_config:
master_name = os.getenv('SENTINEL_MASTER_NAME') params = inventory_provider_config['sentinel']
assert master_name is not None
sentinel = redis.sentinel.Sentinel( sentinel = redis.sentinel.Sentinel(
[(broker_hostname, broker_port)], [(params['hostname'], int(params['port']))],
socket_timeout=0.1) socket_timeout=0.5)
master = sentinel.discover_master(master_name) master = sentinel.discover_master(params['name'])
assert master assert master
broker_hostname = master[0] _broker_hostname = master[0]
broker_port = master[1] _broker_port = master[1]
else:
params = inventory_provider_config['redis']
_broker_hostname = params['hostname']
_broker_port = int(params['port'])
_broker_db_index = 1 # TODO: this should be a config param
if ':' in broker_hostname: if ':' in _broker_hostname:
# assume this means hostname is an ipv6 address # assume this means hostname is an ipv6 address
broker_hostname = '[%s]' % broker_hostname _broker_hostname = '[%s]' % _broker_hostname
broker_url = 'redis://%s:%d/%d' % ( broker_url = result_backend ='redis://%s:%d/%d' % (
broker_hostname, broker_port, broker_db_index) _broker_hostname, _broker_port, _broker_db_index)
result_backend = broker_url
logger.debug('broker_url: %r' % broker_url) logger.debug('broker_url: %r' % broker_url)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment