mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-23 17:08:41 -06:00
allow for redis sentinel connection
This commit is contained in:
parent
0c89534bfb
commit
3538eeda14
@ -28,6 +28,9 @@ REDIS = {
|
|||||||
'webhooks': {
|
'webhooks': {
|
||||||
'HOST': 'localhost',
|
'HOST': 'localhost',
|
||||||
'PORT': 6379,
|
'PORT': 6379,
|
||||||
|
# Comment out `HOST` and `PORT` lines and uncomment the following if using Redis Sentinel
|
||||||
|
# 'SENTINELS': [('mysentinel.redis.example.com', 6379)],
|
||||||
|
# 'SENTINEL_SERVICE': 'netbox',
|
||||||
'PASSWORD': '',
|
'PASSWORD': '',
|
||||||
'DATABASE': 0,
|
'DATABASE': 0,
|
||||||
'DEFAULT_TIMEOUT': 300,
|
'DEFAULT_TIMEOUT': 300,
|
||||||
@ -36,6 +39,9 @@ REDIS = {
|
|||||||
'caching': {
|
'caching': {
|
||||||
'HOST': 'localhost',
|
'HOST': 'localhost',
|
||||||
'PORT': 6379,
|
'PORT': 6379,
|
||||||
|
# Comment out `HOST` and `PORT` lines and uncomment the following if using Redis Sentinel
|
||||||
|
# 'SENTINELS': [('mysentinel.redis.example.com', 6379)],
|
||||||
|
# 'SENTINEL_SERVICE': 'netbox',
|
||||||
'PASSWORD': '',
|
'PASSWORD': '',
|
||||||
'DATABASE': 1,
|
'DATABASE': 1,
|
||||||
'DEFAULT_TIMEOUT': 300,
|
'DEFAULT_TIMEOUT': 300,
|
||||||
|
@ -170,14 +170,27 @@ if 'caching' not in REDIS:
|
|||||||
WEBHOOKS_REDIS = REDIS.get('webhooks', {})
|
WEBHOOKS_REDIS = REDIS.get('webhooks', {})
|
||||||
WEBHOOKS_REDIS_HOST = WEBHOOKS_REDIS.get('HOST', 'localhost')
|
WEBHOOKS_REDIS_HOST = WEBHOOKS_REDIS.get('HOST', 'localhost')
|
||||||
WEBHOOKS_REDIS_PORT = WEBHOOKS_REDIS.get('PORT', 6379)
|
WEBHOOKS_REDIS_PORT = WEBHOOKS_REDIS.get('PORT', 6379)
|
||||||
|
WEBHOOKS_REDIS_SENTINELS = WEBHOOKS_REDIS.get('SENTINELS', [])
|
||||||
|
WEBHOOKS_REDIS_USING_SENTINEL = all([
|
||||||
|
isinstance(WEBHOOKS_REDIS_SENTINELS, (list, tuple)),
|
||||||
|
len(WEBHOOKS_REDIS_SENTINELS) > 0
|
||||||
|
])
|
||||||
|
WEBHOOKS_REDIS_SENTINEL_SERVICE = WEBHOOKS_REDIS.get('SENTINEL_SERVICE', 'default')
|
||||||
WEBHOOKS_REDIS_PASSWORD = WEBHOOKS_REDIS.get('PASSWORD', '')
|
WEBHOOKS_REDIS_PASSWORD = WEBHOOKS_REDIS.get('PASSWORD', '')
|
||||||
WEBHOOKS_REDIS_DATABASE = WEBHOOKS_REDIS.get('DATABASE', 0)
|
WEBHOOKS_REDIS_DATABASE = WEBHOOKS_REDIS.get('DATABASE', 0)
|
||||||
WEBHOOKS_REDIS_DEFAULT_TIMEOUT = WEBHOOKS_REDIS.get('DEFAULT_TIMEOUT', 300)
|
WEBHOOKS_REDIS_DEFAULT_TIMEOUT = WEBHOOKS_REDIS.get('DEFAULT_TIMEOUT', 300)
|
||||||
WEBHOOKS_REDIS_SSL = WEBHOOKS_REDIS.get('SSL', False)
|
WEBHOOKS_REDIS_SSL = WEBHOOKS_REDIS.get('SSL', False)
|
||||||
|
|
||||||
|
|
||||||
CACHING_REDIS = REDIS.get('caching', {})
|
CACHING_REDIS = REDIS.get('caching', {})
|
||||||
CACHING_REDIS_HOST = CACHING_REDIS.get('HOST', 'localhost')
|
CACHING_REDIS_HOST = CACHING_REDIS.get('HOST', 'localhost')
|
||||||
CACHING_REDIS_PORT = CACHING_REDIS.get('PORT', 6379)
|
CACHING_REDIS_PORT = CACHING_REDIS.get('PORT', 6379)
|
||||||
|
CACHING_REDIS_SENTINELS = CACHING_REDIS.get('SENTINELS', [])
|
||||||
|
CACHING_REDIS_USING_SENTINEL = all([
|
||||||
|
isinstance(CACHING_REDIS_SENTINELS, (list, tuple)),
|
||||||
|
len(CACHING_REDIS_SENTINELS) > 0
|
||||||
|
])
|
||||||
|
CACHING_REDIS_SENTINEL_SERVICE = CACHING_REDIS.get('SENTINEL_SERVICE', 'default')
|
||||||
CACHING_REDIS_PASSWORD = CACHING_REDIS.get('PASSWORD', '')
|
CACHING_REDIS_PASSWORD = CACHING_REDIS.get('PASSWORD', '')
|
||||||
CACHING_REDIS_DATABASE = CACHING_REDIS.get('DATABASE', 0)
|
CACHING_REDIS_DATABASE = CACHING_REDIS.get('DATABASE', 0)
|
||||||
CACHING_REDIS_DEFAULT_TIMEOUT = CACHING_REDIS.get('DEFAULT_TIMEOUT', 300)
|
CACHING_REDIS_DEFAULT_TIMEOUT = CACHING_REDIS.get('DEFAULT_TIMEOUT', 300)
|
||||||
@ -394,28 +407,35 @@ if LDAP_CONFIG is not None:
|
|||||||
#
|
#
|
||||||
# Caching
|
# Caching
|
||||||
#
|
#
|
||||||
|
if CACHING_REDIS_USING_SENTINEL:
|
||||||
if CACHING_REDIS_SSL:
|
CACHEOPS_SENTINEL = {
|
||||||
REDIS_CACHE_CON_STRING = 'rediss://'
|
'locations': CACHING_REDIS_SENTINELS,
|
||||||
|
'service_name': CACHING_REDIS_SENTINEL_SERVICE,
|
||||||
|
'db': CACHING_REDIS_DATABASE,
|
||||||
|
}
|
||||||
else:
|
else:
|
||||||
REDIS_CACHE_CON_STRING = 'redis://'
|
if CACHING_REDIS_SSL:
|
||||||
|
REDIS_CACHE_CON_STRING = 'rediss://'
|
||||||
|
else:
|
||||||
|
REDIS_CACHE_CON_STRING = 'redis://'
|
||||||
|
|
||||||
if CACHING_REDIS_PASSWORD:
|
if CACHING_REDIS_PASSWORD:
|
||||||
REDIS_CACHE_CON_STRING = '{}:{}@'.format(REDIS_CACHE_CON_STRING, CACHING_REDIS_PASSWORD)
|
REDIS_CACHE_CON_STRING = '{}:{}@'.format(REDIS_CACHE_CON_STRING, CACHING_REDIS_PASSWORD)
|
||||||
|
|
||||||
REDIS_CACHE_CON_STRING = '{}{}:{}/{}'.format(
|
REDIS_CACHE_CON_STRING = '{}{}:{}/{}'.format(
|
||||||
REDIS_CACHE_CON_STRING,
|
REDIS_CACHE_CON_STRING,
|
||||||
CACHING_REDIS_HOST,
|
CACHING_REDIS_HOST,
|
||||||
CACHING_REDIS_PORT,
|
CACHING_REDIS_PORT,
|
||||||
CACHING_REDIS_DATABASE
|
CACHING_REDIS_DATABASE
|
||||||
)
|
)
|
||||||
|
CACHEOPS_REDIS = REDIS_CACHE_CON_STRING
|
||||||
|
|
||||||
if not CACHE_TIMEOUT:
|
if not CACHE_TIMEOUT:
|
||||||
CACHEOPS_ENABLED = False
|
CACHEOPS_ENABLED = False
|
||||||
else:
|
else:
|
||||||
CACHEOPS_ENABLED = True
|
CACHEOPS_ENABLED = True
|
||||||
|
|
||||||
CACHEOPS_REDIS = REDIS_CACHE_CON_STRING
|
|
||||||
CACHEOPS_DEFAULTS = {
|
CACHEOPS_DEFAULTS = {
|
||||||
'timeout': CACHE_TIMEOUT
|
'timeout': CACHE_TIMEOUT
|
||||||
}
|
}
|
||||||
@ -534,6 +554,15 @@ RQ_QUEUES = {
|
|||||||
'PASSWORD': WEBHOOKS_REDIS_PASSWORD,
|
'PASSWORD': WEBHOOKS_REDIS_PASSWORD,
|
||||||
'DEFAULT_TIMEOUT': WEBHOOKS_REDIS_DEFAULT_TIMEOUT,
|
'DEFAULT_TIMEOUT': WEBHOOKS_REDIS_DEFAULT_TIMEOUT,
|
||||||
'SSL': WEBHOOKS_REDIS_SSL,
|
'SSL': WEBHOOKS_REDIS_SSL,
|
||||||
|
} if not WEBHOOKS_REDIS_USING_SENTINEL else {
|
||||||
|
'SENTINELS': WEBHOOKS_REDIS_SENTINELS,
|
||||||
|
'MASTER_NAME': WEBHOOKS_REDIS_SENTINEL_SERVICE,
|
||||||
|
'DB': WEBHOOKS_REDIS_DATABASE,
|
||||||
|
'PASSWORD': WEBHOOKS_REDIS_PASSWORD,
|
||||||
|
'SOCKET_TIMEOUT': None,
|
||||||
|
'CONNECTION_KWARGS': {
|
||||||
|
'socket_connect_timeout': WEBHOOKS_REDIS_DEFAULT_TIMEOUT
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user