From 40f7df4fd80d88cbb29044584510a87e2670f511 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Fri, 21 Feb 2014 23:03:48 +0100 Subject: [PATCH] [FIX] return code is non-zero if any preloaded database failed to load bzr revid: chs@openerp.com-20140221220348-vw3mll25dti1n23u --- openerp/service/server.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/openerp/service/server.py b/openerp/service/server.py index 8d6e2c3246d..9eb29097a31 100644 --- a/openerp/service/server.py +++ b/openerp/service/server.py @@ -318,11 +318,11 @@ class ThreadedServer(CommonServer): """ self.start() - preload_registries(preload) + rc = preload_registries(preload) if stop: self.stop() - return + return rc # Wait for a first signal to be handled. (time.sleep will be interrupted @@ -583,11 +583,11 @@ class PreforkServer(CommonServer): def run(self, preload, stop): self.start() - preload_registries(preload) + rc = preload_registries(preload) if stop: self.stop() - return + return rc _logger.debug("Multiprocess starting") while 1: @@ -855,6 +855,7 @@ def preload_registries(dbnames): config = openerp.tools.config test_file = config['test_file'] dbnames = dbnames or [] + rc = 0 for dbname in dbnames: try: update_module = config['init'] or config['update'] @@ -866,9 +867,13 @@ def preload_registries(dbnames): load_test_file_yml(test_file) elif test_file.endswith('py'): load_test_file_py(test_file) + + if registry._assertion_report.failures: + rc += 1 except Exception: - _logger.exception('Failed to initialize database `%s`.', dbname) - return + _logger.critical('Failed to initialize database `%s`.', dbname, exc_info=True) + return -1 + return rc def start(preload=None, stop=False): """ Start the openerp http server and cron processor.