-
Notifications
You must be signed in to change notification settings - Fork 0
/
settings.py
79 lines (58 loc) · 2.63 KB
/
settings.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import ConfigParser
import os
import logging
import utils
curr_env = None
settings_dict = {}
class EnvironmentType:
DEV = 'dev'
QA = 'qa'
STAGE = 'stg'
PROD = 'prod'
LOCAL = 'local'
class EnvSettings:
def __init__(self):
self.LOG_ROOT = None
self.LOG_NAME = None
self.LOG_LEVEL = None
self.REDIS_HOST = None
self.REDIS_PORT = None
self.REDIS_PASSWORD = None
self.REDIS_DB = None
def load_settings(env=None):
global settings_dict, curr_env
mass_redis_settings = EnvSettings()
mass_redis_settings.cpg = ConfigParser.SafeConfigParser()
if env is None or env == EnvironmentType.LOCAL:
mass_redis_settings.cpg.read(os.path.join(os.path.abspath(os.path.dirname(__file__)), r'config.txt'))
else:
mass_redis_settings.cpg.read(os.path.join(os.path.abspath(os.path.dirname(__file__)), r'config_%s.txt' % env))
mass_redis_settings.ENV = mass_redis_settings.cpg.get('general', 'env')
# Set only once so that this maintains a reference to the environment the app is running in
# Don't want to do this on subsequent loads since when user requests a provider in a different environment
if curr_env is None:
curr_env = mass_redis_settings.ENV
mass_redis_settings.LOG_ROOT = mass_redis_settings.cpg.get('general', 'log_root')
mass_redis_settings.LOG_NAME = 'generic_redis_cache.log'
mass_redis_settings.LOG_LEVEL = mass_redis_settings.cpg.get('general', 'log_level')
utils.init_log(mass_redis_settings.LOG_NAME, mass_redis_settings.LOG_ROOT)
level = logging.getLevelName(mass_redis_settings.LOG_LEVEL)
utils.set_log_level(level, mass_redis_settings.LOG_NAME)
logger = logging.getLogger(mass_redis_settings.LOG_NAME)
# Redis Settings
mass_redis_settings.REDIS_HOST = mass_redis_settings.cpg.get('general', 'redis_server')
mass_redis_settings.REDIS_PORT = mass_redis_settings.cpg.get('general', 'redis_port')
mass_redis_settings.REDIS_PASSWORD = mass_redis_settings.cpg.get('general', 'redis_password')
mass_redis_settings.REDIS_DB = mass_redis_settings.cpg.get('general', 'redis_db')
# For debugging purposes, log settings data
logger.info('log_root: %s, log_name:%s, log_level:%s' % (mass_redis_settings.LOG_ROOT, mass_redis_settings.LOG_NAME,
mass_redis_settings.LOG_LEVEL))
settings_dict[mass_redis_settings.ENV] = mass_redis_settings
def get_settings(env=None):
if env is None:
env = curr_env
if env not in settings_dict:
load_settings(env)
return settings_dict[env]
# LOAD SETTINGS
load_settings()