From 48ab43cff593b9020633004c4393e8bf91b5b88b Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Tue, 8 Apr 2008 16:42:45 +0000 Subject: Switch SGenshi over to using EntrySet classes as well (SGenshi templates can now be client and group specific, and can use properties internally) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@4486 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Plugin.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/lib/Server/Plugin.py') diff --git a/src/lib/Server/Plugin.py b/src/lib/Server/Plugin.py index 10bc4f1fc..4a973ba1c 100644 --- a/src/lib/Server/Plugin.py +++ b/src/lib/Server/Plugin.py @@ -446,6 +446,10 @@ class EntrySet: pattern += '(G(?P\d+)_(?P\S+))))?$' self.specific = re.compile(pattern) + def get_matching(self, metadata): + return [item for item in self.entries.values() \ + if item.specific.matches(metadata)] + def handle_event(self, event): '''Handle FAM events for the TemplateSet''' action = event.code2str() @@ -547,8 +551,7 @@ class EntrySet: def bind_entry(self, entry, metadata): '''Return the appropriate interpreted template from the set of available templates''' self.bind_info_to_entry(entry, metadata) - matching = [ent for ent in self.entries.values() if \ - ent.specific.matches(metadata)] + matching = self.get_matching(metadata) hspec = [ent for ent in matching if ent.specific.hostname] if hspec: @@ -645,14 +648,12 @@ class GroupSpool(Plugin): def AddDirectoryMonitor(self, relative): '''Add new directory to FAM structures''' - if not relative: - relative = '/' - if relative[-1] != '/': + if not relative.endswith('/'): relative += '/' name = self.data + relative if relative not in self.handles.values(): if not posixpath.isdir(name): - print "Genshi: Failed to open directory %s" % (name) + print "Failed to open directory %s" % (name) return reqid = self.core.fam.AddMonitor(name, self) self.handles[reqid] = relative -- cgit v1.2.3-1-g7c22