X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=nodemanager.py;h=57c96c7d95f6b2a3feaedb27c65244f0bb5d9e76;hb=fbf0fd3367f34d39b0b562820d786d7854824ba6;hp=cdd5e4547a46000702f5b91c62a8e00fcbeb9045;hpb=270c9eeb6f1247fa3e46d68e71a2353ce6cc1546;p=nodemanager.git diff --git a/nodemanager.py b/nodemanager.py index cdd5e45..57c96c7 100755 --- a/nodemanager.py +++ b/nodemanager.py @@ -74,7 +74,10 @@ class NodeManager: # Deal with plugins directory if os.path.exists(self.options.path): sys.path.append(self.options.path) - plugins = [ os.path.split(os.path.splitext(x)[0])[1] for x in glob.glob( os.path.join(self.options.path,'*.py') ) ] + plugins = [ os.path.split(os.path.splitext(x)[0])[1] + for x in glob.glob( os.path.join(self.options.path,'*.py') ) + if not x.endswith("/__init__.py") + ] self.modules += plugins if self.options.user_module: assert self.options.user_module in self.modules @@ -171,6 +174,9 @@ class NodeManager: return {} def run(self): + # make sure to create /etc/planetlab/virt so others can read that + # used e.g. in vsys-scripts's sliceip + tools.get_node_virt() try: if self.options.daemon: tools.daemon() @@ -203,6 +209,12 @@ If this is not the case, please remove the pid file %s. -- exiting""" % (other_p # 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: + logger.log("FATAL : failed to start core module %s"%module) # sort on priority (lower first) def sort_module_priority (m1,m2):