Skip to content

Commit 1c636ea

Browse files
christianpingerjeremystretch
authored andcommitted
add username for redis authentication
1 parent e1169e7 commit 1c636ea

File tree

4 files changed

+12
-1
lines changed

4 files changed

+12
-1
lines changed

docs/configuration/required-parameters.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ Redis is configured using a configuration setting similar to `DATABASE` and thes
6363

6464
* `HOST` - Name or IP address of the Redis server (use `localhost` if running locally)
6565
* `PORT` - TCP port of the Redis service; leave blank for default port (6379)
66+
* `USERNAME` - Redis username (if set)
6667
* `PASSWORD` - Redis password (if set)
6768
* `DATABASE` - Numeric database ID
6869
* `SSL` - Use SSL connection to Redis
@@ -75,13 +76,15 @@ REDIS = {
7576
'tasks': {
7677
'HOST': 'redis.example.com',
7778
'PORT': 1234,
79+
'USERNAME': 'netbox'
7880
'PASSWORD': 'foobar',
7981
'DATABASE': 0,
8082
'SSL': False,
8183
},
8284
'caching': {
8385
'HOST': 'localhost',
8486
'PORT': 6379,
87+
'USERNAME': ''
8588
'PASSWORD': '',
8689
'DATABASE': 1,
8790
'SSL': False,

netbox/netbox/configuration_example.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
# Comment out `HOST` and `PORT` lines and uncomment the following if using Redis Sentinel
3232
# 'SENTINELS': [('mysentinel.redis.example.com', 6379)],
3333
# 'SENTINEL_SERVICE': 'netbox',
34+
'USERNAME': '',
3435
'PASSWORD': '',
3536
'DATABASE': 0,
3637
'SSL': False,
@@ -44,6 +45,7 @@
4445
# Comment out `HOST` and `PORT` lines and uncomment the following if using Redis Sentinel
4546
# 'SENTINELS': [('mysentinel.redis.example.com', 6379)],
4647
# 'SENTINEL_SERVICE': 'netbox',
48+
'USERNAME': '',
4749
'PASSWORD': '',
4850
'DATABASE': 1,
4951
'SSL': False,

netbox/netbox/configuration_testing.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,15 @@
2222
'tasks': {
2323
'HOST': 'localhost',
2424
'PORT': 6379,
25+
'USERNAME': '',
2526
'PASSWORD': '',
2627
'DATABASE': 0,
2728
'SSL': False,
2829
},
2930
'caching': {
3031
'HOST': 'localhost',
3132
'PORT': 6379,
33+
'USERNAME': '',
3234
'PASSWORD': '',
3335
'DATABASE': 1,
3436
'SSL': False,

netbox/netbox/settings.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ def _setting(name, default=None):
230230
])
231231
TASKS_REDIS_SENTINEL_SERVICE = TASKS_REDIS.get('SENTINEL_SERVICE', 'default')
232232
TASKS_REDIS_SENTINEL_TIMEOUT = TASKS_REDIS.get('SENTINEL_TIMEOUT', 10)
233+
TASKS_REDIS_USERNAME = TASKS_REDIS.get('USERNAME', '')
233234
TASKS_REDIS_PASSWORD = TASKS_REDIS.get('PASSWORD', '')
234235
TASKS_REDIS_DATABASE = TASKS_REDIS.get('DATABASE', 0)
235236
TASKS_REDIS_SSL = TASKS_REDIS.get('SSL', False)
@@ -243,6 +244,8 @@ def _setting(name, default=None):
243244
CACHING_REDIS_HOST = REDIS['caching'].get('HOST', 'localhost')
244245
CACHING_REDIS_PORT = REDIS['caching'].get('PORT', 6379)
245246
CACHING_REDIS_DATABASE = REDIS['caching'].get('DATABASE', 0)
247+
CACHING_REDIS_USERNAME = REDIS['caching'].get('USERNAME', '')
248+
CACHING_REDIS_USERNAME_HOST = '@'.join(filter(None, [CACHING_REDIS_USERNAME, CACHING_REDIS_HOST]))
246249
CACHING_REDIS_PASSWORD = REDIS['caching'].get('PASSWORD', '')
247250
CACHING_REDIS_SENTINELS = REDIS['caching'].get('SENTINELS', [])
248251
CACHING_REDIS_SENTINEL_SERVICE = REDIS['caching'].get('SENTINEL_SERVICE', 'default')
@@ -252,7 +255,7 @@ def _setting(name, default=None):
252255
CACHES = {
253256
'default': {
254257
'BACKEND': 'django_redis.cache.RedisCache',
255-
'LOCATION': f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_HOST}:{CACHING_REDIS_PORT}/{CACHING_REDIS_DATABASE}',
258+
'LOCATION': f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_USERNAME_HOST}:{CACHING_REDIS_PORT}/{CACHING_REDIS_DATABASE}',
256259
'OPTIONS': {
257260
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
258261
'PASSWORD': CACHING_REDIS_PASSWORD,
@@ -640,6 +643,7 @@ def _setting(name, default=None):
640643
}
641644
RQ_PARAMS.update({
642645
'DB': TASKS_REDIS_DATABASE,
646+
'USERNAME': TASKS_REDIS_USERNAME,
643647
'PASSWORD': TASKS_REDIS_PASSWORD,
644648
'DEFAULT_TIMEOUT': RQ_DEFAULT_TIMEOUT,
645649
})

0 commit comments

Comments
 (0)