[IMP] openerp-server: handle more startup exceptions w/o exiting main thread
bzr revid: odo@openerp.com-20110926121122-uecfrv53x731k5ey
This commit is contained in:
parent
ebf51467e9
commit
fbb36c547c
|
@ -96,14 +96,17 @@ def preload_registry(dbname):
|
||||||
|
|
||||||
def run_test_file(dbname, test_file):
|
def run_test_file(dbname, test_file):
|
||||||
""" Preload a registry, possibly run a test file, and start the cron."""
|
""" Preload a registry, possibly run a test file, and start the cron."""
|
||||||
db, pool = openerp.pooler.get_db_and_pool(dbname, update_module=config['init'] or config['update'], pooljobs=False)
|
try:
|
||||||
|
db, pool = openerp.pooler.get_db_and_pool(dbname, update_module=config['init'] or config['update'], pooljobs=False)
|
||||||
|
cr = db.cursor()
|
||||||
|
logger = logging.getLogger('server')
|
||||||
|
logger.info('loading test file %s', test_file)
|
||||||
|
openerp.tools.convert_yaml_import(cr, 'base', file(test_file), {}, 'test', True)
|
||||||
|
cr.rollback()
|
||||||
|
cr.close()
|
||||||
|
except Exception:
|
||||||
|
logging.exception('Failed to initialize database `%s` and run test file `%s`.', dbname, test_file)
|
||||||
|
|
||||||
cr = db.cursor()
|
|
||||||
logger = logging.getLogger('server')
|
|
||||||
logger.info('loading test file %s', test_file)
|
|
||||||
openerp.tools.convert_yaml_import(cr, 'base', file(test_file), {}, 'test', True)
|
|
||||||
cr.rollback()
|
|
||||||
cr.close()
|
|
||||||
|
|
||||||
def export_translation():
|
def export_translation():
|
||||||
config = openerp.tools.config
|
config = openerp.tools.config
|
||||||
|
@ -235,11 +238,14 @@ if __name__ == "__main__":
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
for m in openerp.conf.server_wide_modules:
|
for m in openerp.conf.server_wide_modules:
|
||||||
__import__(m)
|
try:
|
||||||
# Call any post_load hook.
|
__import__(m)
|
||||||
info = openerp.modules.module.load_information_from_description_file(m)
|
# Call any post_load hook.
|
||||||
if info['post_load']:
|
info = openerp.modules.module.load_information_from_description_file(m)
|
||||||
getattr(sys.modules[m], info['post_load'])()
|
if info['post_load']:
|
||||||
|
getattr(sys.modules[m], info['post_load'])()
|
||||||
|
except Exception:
|
||||||
|
logging.exception('Failed to load server-wide module `%s`', m)
|
||||||
|
|
||||||
setup_pid_file()
|
setup_pid_file()
|
||||||
logger = logging.getLogger('server')
|
logger = logging.getLogger('server')
|
||||||
|
|
Loading…
Reference in New Issue