|
|
3d8d28 |
|
|
|
cbf076 |
import datetime
|
|
|
4656ad |
from db.types import bytype, bychar
|
|
|
cbf076 |
from db.pool import Pool
|
|
|
cbf076 |
|
|
|
cbf076 |
|
|
|
3d8d28 |
class Server:
|
|
|
3d8d28 |
def __init__(self, config):
|
|
|
cbf076 |
urlprefix = str(config.get('urlprefix', ''))
|
|
|
cbf076 |
|
|
|
cbf076 |
config_db = config.get('db', dict())
|
|
|
cbf076 |
config_db_pool = config_db.get('pool', dict())
|
|
|
cbf076 |
|
|
|
cbf076 |
self.config = {
|
|
|
cbf076 |
'urlprefix' : urlprefix,
|
|
|
cbf076 |
'urldataprefix' : str(config.get('urldataprefix', urlprefix + '/data')),
|
|
|
cbf076 |
|
|
|
cbf076 |
'db' : {
|
|
|
cbf076 |
'connection' : dict(config_db.get('connection', dict())),
|
|
|
4656ad |
'prefix' : str(config_db.get('prefix', '')),
|
|
|
cbf076 |
'retrytime' : float(config_db.get('retrytime', 0)),
|
|
|
cbf076 |
'pool': {
|
|
|
cbf076 |
'read' : int(config_db_pool.get('read' , 10)),
|
|
|
cbf076 |
'write' : int(config_db_pool.get('write', 10)),
|
|
|
cbf076 |
},
|
|
|
cbf076 |
},
|
|
|
cbf076 |
}
|
|
|
cbf076 |
|
|
|
cbf076 |
assert self.config['db']['retrytime'] >= 0
|
|
|
4656ad |
assert self.config['db']['prefix'] == '' \
|
|
|
4656ad |
or self.config['db']['prefix'].isidentifier()
|
|
|
cbf076 |
assert self.config['db']['pool']['read'] > 0
|
|
|
cbf076 |
assert self.config['db']['pool']['write'] > 0
|
|
|
cbf076 |
|
|
|
4656ad |
self.dbtypebytype = bytype
|
|
|
4656ad |
self.dbtypebychar = bychar
|
|
|
cbf076 |
self.dbpool = Pool(self)
|
|
|
4656ad |
|
|
|
cbf076 |
|