Files
tryton/trytond/pooler.py
T
ced@b2ck.com 9d971a0008 Initial commit
- add license
- add run script
- add config parser
- add service object
- add web_service
- add workflow
- add osv/orm/fields
- add module management
- add ir module
2007-12-10 01:04:13 +01:00

57 lines
1.6 KiB
Python

from sql_db import db_connect
from netsvc import Logger, LOG_INFO
_DB = {}
_POOL = {}
def get_db_and_pool(db_name, force_demo=False, update_module=False):
if db_name in _DB:
database = _DB[db_name]
else:
logger = Logger()
logger.notify_channel('pooler', LOG_INFO,
'Connecting to %s' % (db_name))
database = db_connect(db_name)
_DB[db_name] = database
if db_name in _POOL:
pool = _POOL[db_name]
else:
from osv.osv import OSVService
pool = OSVService()
_POOL[db_name] = pool
from module import load_modules
load_modules(database, force_demo, update_module)
if not update_module:
import report
#report.interface.register_all(database)
pool.get('ir.cron').pool_jobs(database.dbname)
return database, pool
def restart_pool(db_name, force_demo=False, update_module=False):
del _POOL[db_name]
return get_db_and_pool(db_name, force_demo, update_module=update_module)
def close_db(db_name):
if db_name in _DB:
_DB[db_name].truedb.close()
del _DB[db_name]
if db_name in _POOL:
del _POOL[db_name]
def get_db_only(db_name):
if db_name in _DB:
database = _DB[db_name]
else:
database = db_connect(db_name)
_DB[db_name] = database
return database
def get_db(db_name):
return get_db_and_pool(db_name)[0]
def get_pool(db_name, force_demo=False, update_module=False):
pool = get_db_and_pool(db_name, force_demo, update_module)[1]
return pool