- 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
57 lines
1.6 KiB
Python
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
|