Repository: jumpserver/jumpserver

Issue:
redis配置项增强
[简述你的问题]
目前jumpserver settings.py文件中CELERY_BROKER_URL和CACHES这两个变量默认使用redis的db是3和4，建议做成可配置项，放到config.py文件中。还有原来config_example.py文件中BROKER_URL变量没有使用到
##### 使用版本
1.3.1

##### 具体表现
![image](https://user-images.githubusercontent.com/6102493/41134836-0ebb850a-6b01-11e8-9963-85990e2bb31c.png)
![image](https://user-images.githubusercontent.com/6102493/41134859-2c719972-6b01-11e8-8940-a545a4ea98dc.png)

[注:] 完成后请关闭 issue



Discussion:

Resolving patch:
diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py
--- a/apps/jumpserver/settings.py
+++ b/apps/jumpserver/settings.py
@@ -343,10 +343,11 @@
     AUTHENTICATION_BACKENDS.insert(0, AUTH_LDAP_BACKEND)
 
 # Celery using redis as broker
-CELERY_BROKER_URL = 'redis://:%(password)s@%(host)s:%(port)s/3' % {
+CELERY_BROKER_URL = 'redis://:%(password)s@%(host)s:%(port)s/%(db)s' % {
     'password': CONFIG.REDIS_PASSWORD if CONFIG.REDIS_PASSWORD else '',
     'host': CONFIG.REDIS_HOST or '127.0.0.1',
     'port': CONFIG.REDIS_PORT or 6379,
+    'db':CONFIG.REDIS_DB_CELERY_BROKER or 3,
 }
 CELERY_TASK_SERIALIZER = 'pickle'
 CELERY_RESULT_SERIALIZER = 'pickle'
@@ -367,10 +368,11 @@
 CACHES = {
     'default': {
         'BACKEND': 'redis_cache.RedisCache',
-        'LOCATION': 'redis://:%(password)s@%(host)s:%(port)s/4' % {
+        'LOCATION': 'redis://:%(password)s@%(host)s:%(port)s/%(db)s' % {
             'password': CONFIG.REDIS_PASSWORD if CONFIG.REDIS_PASSWORD else '',
             'host': CONFIG.REDIS_HOST or '127.0.0.1',
             'port': CONFIG.REDIS_PORT or 6379,
+            'db':CONFIG.REDIS_DB_CACHE or 4,
         }
     }
 }
diff --git a/config_example.py b/config_example.py
--- a/config_example.py
+++ b/config_example.py
@@ -21,10 +21,10 @@ class Config:
     ALLOWED_HOSTS = ['*']
 
     # Development env open this, when error occur display the full process track, Production disable it
-    DEBUG = True
+    DEBUG = os.environ.get("DEBUG") or True
 
     # DEBUG, INFO, WARNING, ERROR, CRITICAL can set. See https://docs.djangoproject.com/en/1.10/topics/logging/
-    LOG_LEVEL = 'DEBUG'
+    LOG_LEVEL = os.environ.get("LOG_LEVEL") or 'DEBUG'
     LOG_DIR = os.path.join(BASE_DIR, 'logs')
 
     # Database setting, Support sqlite3, mysql, postgres ....
@@ -35,12 +35,12 @@ class Config:
     DB_NAME = os.path.join(BASE_DIR, 'data', 'db.sqlite3')
 
     # MySQL or postgres setting like:
-    # DB_ENGINE = 'mysql'
-    # DB_HOST = '127.0.0.1'
-    # DB_PORT = 3306
-    # DB_USER = 'root'
-    # DB_PASSWORD = ''
-    # DB_NAME = 'jumpserver'
+    # DB_ENGINE = os.environ.get("DB_ENGINE") or 'mysql'
+    # DB_HOST = os.environ.get("DB_HOST") or '127.0.0.1'
+    # DB_PORT = os.environ.get("DB_PORT") or 3306
+    # DB_USER = os.environ.get("DB_USER") or 'jumpserver'
+    # DB_PASSWORD = os.environ.get("DB_PASSWORD") or 'weakPassword'
+    # DB_NAME = os.environ.get("DB_NAME") or 'jumpserver'
 
     # When Django start it will bind this host and port
     # ./manage.py runserver 127.0.0.1:8080
@@ -48,9 +48,11 @@ class Config:
     HTTP_LISTEN_PORT = 8080
 
     # Use Redis as broker for celery and web socket
-    REDIS_HOST = '127.0.0.1'
-    REDIS_PORT = 6379
-    REDIS_PASSWORD = ''
+    REDIS_HOST = os.environ.get("REDIS_HOST") or '127.0.0.1'
+    REDIS_PORT = os.environ.get("REDIS_PORT") or 6379
+    REDIS_PASSWORD = os.environ.get("REDIS_PASSWORD") or ''
+    REDIS_DB_CELERY = os.environ.get('REDIS_DB') or 3
+    REDIS_DB_CACHE = os.environ.get('REDIS_DB') or 4
 
     def __init__(self):
         pass


Test patch: