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

Finished feature work-with-sentinel.

parents b6851bba 30351613
No related branches found
No related tags found
No related merge requests found
import json
from os import getenv
broker_url = getenv(
'CELERY_BROKER_URL',
default='redis://test-dashboard02.geant.org:6379/1')
result_backend = getenv(
'CELERY_BROKER_URL',
default='redis://test-dashboard02.geant.org:6379/1')
tmp_options = getenv(
'BROKER_TRANSPORT_OPTIONS',
default='')
if tmp_options:
broker_transport_options = json.loads(tmp_options)
else:
broker_transport_options = {}
import logging
import os
import re
import redis.sentinel
logger = logging.getLogger(__name__)
broker_hostname = os.getenv('BROKER_HOSTNAME')
assert broker_hostname is not None
broker_port = int(os.getenv('BROKER_PORT'))
broker_db_index = int(os.getenv('BROKER_DB_INDEX'))
broker_scheme = os.getenv('BROKER_SCHEME', 'redis')
assert broker_scheme in ('redis', 'sentinel'), 'unsupported broker scheme'
if broker_scheme == 'sentinel':
master_name = os.getenv('SENTINEL_MASTER_NAME')
assert master_name is not None
sentinel = redis.sentinel.Sentinel(
[(broker_hostname, broker_port)],
socket_timeout=0.1)
master = sentinel.discover_master(master_name)
assert master
broker_hostname = master[0]
broker_port = master[1]
if re.match(r'^[\d:]+$', broker_hostname):
# handle case where hostname is an ipv6 address
broker_hostname = '[%s]' % broker_hostname
broker_url = 'redis://%s:%d/%d' % (
broker_hostname, broker_port, broker_db_index)
result_backend = broker_url
task_eager_propagates = True
......@@ -4,8 +4,8 @@ pysnmp
jsonschema
paramiko
flask
redis
celery
redis==3.2.1
celery==4.3.0
junos-eznc
lxml
requests
......
......@@ -16,8 +16,8 @@ setup(
'jsonschema',
'paramiko',
'flask',
'redis',
'celery',
'redis==3.2.1',
'celery==4.3.0',
'junos-eznc',
'lxml',
'requests',
......
......@@ -197,6 +197,11 @@ def mocked_worker_module(
mocker, mocked_redis, data_config,
cached_test_data, mocked_netifaces):
os.environ['BROKER_HOSTNAME'] = 'a.b.c'
os.environ['BROKER_PORT'] = '123'
os.environ['BROKER_DB_INDEX'] = '456'
os.environ['BROKER_SCHEME'] = 'redis'
worker.InventoryTask.config = data_config
def _mocked_snmp_interfaces(hostname, community, _):
......
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