From: Thierry Parmentelat <thierry.parmentelat@inria.fr>
Date: Sun, 12 Jan 2014 23:53:17 +0000 (+0100)
Subject: stricter checks on core modules that would fail to load
X-Git-Tag: nodemanager-5.2-10~15
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=ed3d29cba2bed9ae380d51aa8017ecabc99aabe5;p=nodemanager.git

stricter checks on core modules that would fail to load
---

diff --git a/nodemanager.py b/nodemanager.py
index 4b030d5..7f5e204 100755
--- a/nodemanager.py
+++ b/nodemanager.py
@@ -203,19 +203,15 @@ If this is not the case, please remove the pid file %s. -- exiting""" % (other_p
                 try:
                     m = __import__(module)
                     logger.verbose("nodemanager: triggering %s.start"%m.__name__)
-                    m.start()
+                    try:        m.start()
+                    except:     logger.log("WARNING: module %s did not start")
                     self.loaded_modules.append(m)
-                except ImportError, err:
-                    logger.log_exc ("ERROR while loading module %s - skipping:" % module)
-                    # if we fail to load any of these, it's really no need to go on any further
-                    if module in NodeManager.core_modules:
-                        logger.log("FATAL : failed to load core module %s"%module)
-                except AttributeError, err:
-                    # triggered when module doesn't have a 'start' method
-                    logger.log_exc ("ERROR while starting module %s - skipping:" % module)
-                    # if we fail to load any of these, it's really no need to go on any further
-                    if module in NodeManager.core_modules:
+                except:
+                    if module not in NodeManager.core_modules:
+                        logger.log_exc ("ERROR while loading module %s - skipped" % module)
+                    else:
                         logger.log("FATAL : failed to start core module %s"%module)
+                        sys.exit(1)
 
             # sort on priority (lower first)
             def sort_module_priority (m1,m2):