Skip to content

Commit 24205a3

Browse files
committed
Made RedisLiveSettings and dependencies more pythonic
1 parent 205e7d9 commit 24205a3

File tree

5 files changed

+582
-433
lines changed

5 files changed

+582
-433
lines changed
Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
1-
import tornado.ioloop
2-
import tornado.web
3-
import random
4-
51
from BaseController import BaseController
6-
from api.util.settings import RedisLiveSettings
2+
from api.util import settings
73

84
class ServerListController(BaseController):
95

10-
def get(self):
11-
serverList = self.ReadServerConfig()
12-
servers = { "servers" : serverList }
13-
self.write(servers)
14-
6+
def get(self):
7+
servers = {"servers": self.read_server_config()}
8+
self.write(servers)
159

16-
def ReadServerConfig(self):
17-
serverList = []
18-
redisServers = RedisLiveSettings.GetRedisServers()
10+
def read_server_config(self):
11+
"""Returns a list of servers with the 'id' field added.
12+
"""
13+
# TODO: Move this into the settings module so everything benefits.
14+
server_list = []
15+
redis_servers = settings.get_redis_servers()
1916

20-
for server in redisServers:
21-
serverList.append({ "server" : server["server"], "port" : server["port"] , "id" : server["server"] + ":" + `server["port"]` })
17+
for server in redis_servers:
18+
server_id = "%(server)s:%(port)s" % server
19+
s = dict(server=server['server'], port=server['port'], id=server_id)
20+
server_list.append(s)
2221

23-
return serverList
22+
return server_list

src/api/util/settings.py

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
11
import json
22

3-
class RedisLiveSettings(object):
3+
def get_settings():
4+
"""Parses the settings from redis-live.conf.
5+
"""
6+
# TODO: Consider YAML. Human writable, machine readable.
7+
return json.load(open("redis-live.conf"))
48

5-
@staticmethod
6-
def GetRedisServers():
7-
config = RedisLiveSettings.GetSettings()
8-
return config["RedisServers"]
9+
def get_redis_servers():
10+
config = get_settings()
11+
return config["RedisServers"]
912

10-
@staticmethod
11-
def GetRedisStatsServer():
12-
config = RedisLiveSettings.GetSettings()
13-
return config["RedisStatsServer"]
13+
def get_redis_stats_server():
14+
config = get_settings()
15+
return config["RedisStatsServer"]
1416

15-
@staticmethod
16-
def GetSettings():
17-
config = open("redis-live.conf")
18-
return json.loads(config.read())
19-
20-
@staticmethod
21-
def GetDataStoreType():
22-
config = RedisLiveSettings.GetSettings()
23-
return config["DataStoreType"]
17+
def get_data_store_type():
18+
config = get_settings()
19+
return config["DataStoreType"]

src/dataprovider/dataprovider.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
1-
#from sqliteprovider import RedisStatsProvider
2-
#from redisprovider import RedisStatsProvider
3-
4-
from api.util.settings import RedisLiveSettings
1+
from api.util import settings
52
import sqliteprovider
63
import redisprovider
74

85

6+
# TODO: Confirm there's not some implementation detail I've missed, then
7+
# ditch the classes here.
98
class RedisLiveDataProvider(object):
109

11-
@staticmethod
12-
def GetProvider():
13-
dataStoreType = RedisLiveSettings.GetDataStoreType()
10+
@staticmethod
11+
def get_provider():
12+
"""Returns a data provider based on the settings file.
13+
14+
Valid providers are currently Redis and SQLite.
15+
"""
16+
data_store_type = settings.get_data_store_type()
1417

15-
if dataStoreType=="redis":
16-
return redisprovider.RedisStatsProvider()
17-
else:
18-
return sqliteprovider.RedisStatsProvider()
19-
18+
# FIXME: Should use a global variable for "redis" here.
19+
if data_store_type == "redis":
20+
return redisprovider.RedisStatsProvider()
21+
else:
22+
return sqliteprovider.RedisStatsProvider()

0 commit comments

Comments
 (0)