diff options
author | Sol Jerome <sol.jerome@gmail.com> | 2012-03-24 11:20:07 -0500 |
---|---|---|
committer | Sol Jerome <sol.jerome@gmail.com> | 2012-03-24 11:20:07 -0500 |
commit | dab1d03d81c538966d03fb9318a4588a9e803b44 (patch) | |
tree | f51e27fa55887e9fb961766805fe43f0da56c5b9 /src/lib/Server/Plugins/TemplateHelper.py | |
parent | 5cd6238df496a3cea178e4596ecd87967cce1ce6 (diff) | |
download | bcfg2-dab1d03d81c538966d03fb9318a4588a9e803b44.tar.gz bcfg2-dab1d03d81c538966d03fb9318a4588a9e803b44.tar.bz2 bcfg2-dab1d03d81c538966d03fb9318a4588a9e803b44.zip |
Allow to run directly from a git checkout (#1037)
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
Diffstat (limited to 'src/lib/Server/Plugins/TemplateHelper.py')
-rw-r--r-- | src/lib/Server/Plugins/TemplateHelper.py | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/src/lib/Server/Plugins/TemplateHelper.py b/src/lib/Server/Plugins/TemplateHelper.py deleted file mode 100644 index 42eafed56..000000000 --- a/src/lib/Server/Plugins/TemplateHelper.py +++ /dev/null @@ -1,83 +0,0 @@ -import re -import imp -import sys -import logging -import Bcfg2.Server.Plugin - -logger = logging.getLogger(__name__) - -class HelperModule(Bcfg2.Server.Plugin.SpecificData): - _module_name_re = re.compile(r'([^/]+?)\.py') - - def __init__(self, name, specific, encoding): - Bcfg2.Server.Plugin.SpecificData.__init__(self, name, specific, - encoding) - match = self._module_name_re.search(self.name) - if match: - self._module_name = match.group(1) - else: - self._module_name = name - self._attrs = [] - - def handle_event(self, event): - Bcfg2.Server.Plugin.SpecificData.handle_event(self, event) - try: - module = imp.load_source(self._module_name, self.name) - except: - err = sys.exc_info()[1] - logger.error("TemplateHelper: Failed to import %s: %s" % - (self.name, err)) - return - - if not hasattr(module, "__export__"): - logger.error("TemplateHelper: %s has no __export__ list" % - self.name) - return - - for sym in module.__export__: - if sym not in self._attrs and hasattr(self, sym): - logger.warning("TemplateHelper: %s: %s is a reserved keyword, " - "skipping export" % (self.name, sym)) - setattr(self, sym, getattr(module, sym)) - # remove old exports - for sym in set(self._attrs) - set(module.__export__): - delattr(self, sym) - - self._attrs = module.__export__ - - -class HelperSet(Bcfg2.Server.Plugin.EntrySet): - ignore = re.compile("^(\.#.*|.*~|\\..*\\.(sw[px])|.*\.py[co])$") - - def __init__(self, path, fam, encoding, plugin_name): - fpattern = '[0-9A-Za-z_\-]+\.py' - self.plugin_name = plugin_name - Bcfg2.Server.Plugin.EntrySet.__init__(self, fpattern, path, - HelperModule, encoding) - fam.AddMonitor(path, self) - - def HandleEvent(self, event): - if (event.filename != self.path and - not self.ignore.match(event.filename)): - return self.handle_event(event) - - -class TemplateHelper(Bcfg2.Server.Plugin.Plugin, - Bcfg2.Server.Plugin.Connector): - """ A plugin to provide helper classes and functions to templates """ - name = 'TemplateHelper' - __author__ = 'chris.a.st.pierre@gmail.com' - - def __init__(self, core, datastore): - Bcfg2.Server.Plugin.Plugin.__init__(self, core, datastore) - Bcfg2.Server.Plugin.Connector.__init__(self) - - try: - self.helpers = HelperSet(self.data, core.fam, core.encoding, - self.name) - except: - raise Bcfg2.Server.Plugin.PluginInitError - - def get_additional_data(self, metadata): - return dict([(h._module_name, h) - for h in list(self.helpers.entries.values())]) |