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 import logging
from os import getenv import os
import re
broker_url = getenv(
'CELERY_BROKER_URL', import redis.sentinel
default='redis://test-dashboard02.geant.org:6379/1')
result_backend = getenv( logger = logging.getLogger(__name__)
'CELERY_BROKER_URL',
default='redis://test-dashboard02.geant.org:6379/1') broker_hostname = os.getenv('BROKER_HOSTNAME')
assert broker_hostname is not None
tmp_options = getenv( broker_port = int(os.getenv('BROKER_PORT'))
'BROKER_TRANSPORT_OPTIONS', broker_db_index = int(os.getenv('BROKER_DB_INDEX'))
default='')
if tmp_options: broker_scheme = os.getenv('BROKER_SCHEME', 'redis')
broker_transport_options = json.loads(tmp_options) assert broker_scheme in ('redis', 'sentinel'), 'unsupported broker scheme'
else:
broker_transport_options = {} 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 task_eager_propagates = True
...@@ -4,8 +4,8 @@ pysnmp ...@@ -4,8 +4,8 @@ pysnmp
jsonschema jsonschema
paramiko paramiko
flask flask
redis redis==3.2.1
celery celery==4.3.0
junos-eznc junos-eznc
lxml lxml
requests requests
......
...@@ -16,8 +16,8 @@ setup( ...@@ -16,8 +16,8 @@ setup(
'jsonschema', 'jsonschema',
'paramiko', 'paramiko',
'flask', 'flask',
'redis', 'redis==3.2.1',
'celery', 'celery==4.3.0',
'junos-eznc', 'junos-eznc',
'lxml', 'lxml',
'requests', 'requests',
......
...@@ -197,6 +197,11 @@ def mocked_worker_module( ...@@ -197,6 +197,11 @@ def mocked_worker_module(
mocker, mocked_redis, data_config, mocker, mocked_redis, data_config,
cached_test_data, mocked_netifaces): 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 worker.InventoryTask.config = data_config
def _mocked_snmp_interfaces(hostname, community, _): 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