rpms/bcfg2/FC-6 bcfg2-0.9.5pre4-tgenshi.patch,NONE,1.1

Jeffrey C. Ollie (jcollie) fedora-extras-commits at redhat.com
Mon Nov 12 14:15:57 UTC 2007


Author: jcollie

Update of /cvs/pkgs/rpms/bcfg2/FC-6
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv7847

Added Files:
	bcfg2-0.9.5pre4-tgenshi.patch 
Log Message:
Add patch

bcfg2-0.9.5pre4-tgenshi.patch:

--- NEW FILE bcfg2-0.9.5pre4-tgenshi.patch ---
diff --git a/src/lib/Server/Plugins/TGenshi.py b/src/lib/Server/Plugins/TGenshi.py
index 5867797..7855763 100644
--- a/src/lib/Server/Plugins/TGenshi.py
+++ b/src/lib/Server/Plugins/TGenshi.py
@@ -1,6 +1,8 @@
 '''This module implements a templating generator based on Genshi'''
 __revision__ = '$Revision$'
 
+import os
+
 from genshi.template import TemplateLoader, TextTemplate, MarkupTemplate, TemplateError
 import logging, lxml.etree, posixpath, re, os
 import Bcfg2.Server.Plugin
@@ -18,23 +20,25 @@ class TemplateFile:
         self.properties = properties
         self.loader = loader
         
-    def HandleEvent(self, event):
+    def HandleEvent(self, data, event):
         '''Handle all fs events for this template'''
         if event.filename in ['template.xml', 'template.txt']:
             try:
+                fpath = os.path.join(self.name[1:], event.filename)
                 if event.filename.endswith('.txt'):
-                    self.template = self.loader.load(os.path.join(self.name[1:], event.filename), cls=TextTemplate)
+                    self.template = self.loader.load(fpath, cls=TextTemplate)
                 else:
-                    self.template = self.loader.load(os.path.join(self.name[1:], event.filename), cls=MarkupTemplate)
+                    self.template = self.loader.load(fpath, cls=MarkupTemplate)
             except TemplateError, terror:
                 logger.error('Genshi template error: %s' % terror)
         elif event.filename == 'info.xml':
             if not hasattr(self, 'infoxml'):
-                fpath = self.name + '/info.xml'
+                fpath = os.path.join(os.path.join(data, self.name[1:]), 'info.xml')
                 self.infoxml = Bcfg2.Server.Plugin.XMLSrc(fpath, True)
             self.infoxml.HandleEvent(event)    
         elif event.filename == 'info':
-            for line in open(self.name + '/info').readlines():
+            fpath = os.path.join(os.path.join(data, self.name[1:]), 'info')
+            for line in open(fpath).readlines():
                 match = info.match(line)
                 if not match:
                     logger.warning("Failed to match line: %s"%line)
@@ -134,12 +138,12 @@ class TGenshi(Bcfg2.Server.Plugin.Plugin):
                 if not self.entries.has_key(identifier):
                     self.entries[identifier] = TemplateFile(identifier, self.loader, self.properties)
                     self.Entries['ConfigFile'][identifier] = self.BuildEntry
-                self.entries[identifier].HandleEvent(event)
+                self.entries[identifier].HandleEvent(self.data, event)
             else:
                 logger.info('Not creating template for %s' % identifier)
         elif action == 'changed':
             if self.entries.has_key(identifier):
-                self.entries[identifier].HandleEvent(event)
+                self.entries[identifier].HandleEvent(self.data, event)
         elif action == 'deleted':
             if event.filename in ['template.xml', 'template.txt'] and self.entries.has_key(identifier):
                 del self.entries[identifier]




More information about the fedora-extras-commits mailing list