Trees | Indices | Help |
|
---|
|
1 ########################################################################### 2 # 3 # This program is part of Zenoss Core, an open source monitoring platform. 4 # Copyright (C) 2007, Zenoss Inc. 5 # 6 # This program is free software; you can redistribute it and/or modify it 7 # under the terms of the GNU General Public License version 2 as published by 8 # the Free Software Foundation. 9 # 10 # For complete information please visit: http://www.zenoss.com/oss/ 11 # 12 ########################################################################### 13 14 from Products.ZenUtils.Utils import importClass 15 import sys 16 import os 17 18 import logging 19 log = logging.getLogger('dc.plugins') 20 21 import plugins 22 23 _pluginskip = ("CollectorPlugin.py", "DataMaps.py")25 return f.endswith(".py") and not (f.startswith("_") or f in _pluginskip)2628 collectorPlugins = {} 29 log.info("loading collector plugins from: %s", pdir) 30 lpdir = len(pdir)+1 31 for path, dirname, filenames in os.walk(pdir): 32 path = path[lpdir:] 33 for filename in filter(_plfilter, filenames): 34 modpath = os.path.join(path,filename[:-3]).replace("/",".") 35 log.debug("loading: %s", modpath) 36 try: 37 sys.path.insert(0, pdir) 38 const = importClass(modpath) 39 sys.path.remove(pdir) 40 plugin = const() 41 collectorPlugins[plugin.name()] = plugin 42 except ImportError: 43 log.exception("problem loading plugin:%s",modpath) 44 return collectorPlugins45 4648 """Load plugins from the plugin directory. Returns them as a {<plugin 49 name> : plugin instance} 50 """ 51 plugins = filter(lambda x: x.startswith("plugins"), sys.modules) 52 for key in ['zenoss'] + plugins: 53 log.debug("clearing plugin %s", key) 54 if sys.modules.has_key(key): 55 del sys.modules[key] 56 pdir = os.path.join(os.path.dirname(__file__),"plugins") 57 log.info("loading collector plugins from:%s", pdir) 58 plugins = _loadPluginDir(pdir) 59 try: 60 for pack in dmd.packs(): 61 plugins.update(_loadPluginDir(pack.path('modeler', 'plugins'))) 62 except: 63 log.error('Could not load modeler plugins from zenpacks.' 64 ' One of the zenpacks is missing or broken.') 65 return plugins66
Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0beta1 on Thu Oct 25 16:28:21 2007 | http://epydoc.sourceforge.net |