Skip to content

Commit 968770e

Browse files
author
Omair Majid
committed
common: add support for configuration file and reading settings
1 parent 9b0871b commit 968770e

File tree

5 files changed

+48
-4
lines changed

5 files changed

+48
-4
lines changed

client.conf

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[main]
2+
server=localhost:1055
3+
username=

consider/configuration.py

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
2+
import designpatterns
3+
4+
class ClientConfiguration(designpatterns.Borg):
5+
6+
CLIENT_CONFIG_NAME = 'client.conf'
7+
8+
def __init__(self):
9+
if not 'server' in self.__dict__:
10+
import ConfigParser
11+
config = ConfigParser.ConfigParser()
12+
config.read(ClientConfiguration.CLIENT_CONFIG_NAME)
13+
self.server = config.get('main', 'server')
14+
self.username = config.get('main', 'username')
15+
16+
def getServer(self):
17+
return self.server
18+
19+
def getUsername(self):
20+
return self.username
21+
22+
23+
class ServerConfiguration(designpatterns.Borg):
24+
25+
SERVER_CONFIG_NAME = 'server.conf'
26+
27+
def __init__(self):
28+
if not 'port' in self.__dict__:
29+
import ConfigParser
30+
config = ConfigParser.ConfigParser()
31+
config.read(ServerConfiguration.SERVER_CONFIG_NAME)
32+
self.port = config.getint('main', 'port')
33+
34+
def getPort(self):
35+
return self.port
36+

consider/server.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
from twisted.web import server
55
from twisted.python import log
66

7-
from consider import rpcservice, storage
7+
from consider import rpcservice, storage, configuration
88

99
class MasterService(service.MultiService):
1010
def __init__(self):
1111
service.MultiService.__init__(self)
12-
13-
self.rpcServerPort = 1055
12+
serverConfig = configuration.ServerConfiguration()
13+
self.rpcServerPort = serverConfig.getPort()
1414
self.monitorService = MonitorService()
1515
self.rpcServer = internet.TCPServer(
1616
self.rpcServerPort,

consider/settings.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,12 @@ class Settings(designpatterns.Borg):
4141
def __init__(self):
4242
# load state when the state of the first borg is initialized
4343
if 'username' not in self.__dict__:
44+
from consider.configuration import ClientConfiguration
45+
clientConfiguration = ClientConfiguration()
4446
self.username = 'test'
4547
self.password = 'test'
46-
self.serverAddress = 'http://localhost:1055'
48+
self.serverAddress = 'http://' + clientConfiguration.getServer()
49+
print('Connecting to server: ' + self.serverAddress)
4750
self.observers = []
4851
self.webPageList = []
4952

server.conf

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[main]
2+
port=1055

0 commit comments

Comments
 (0)