summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Plugin.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-05-21 11:21:40 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-05-21 11:21:40 -0400
commite88008fef62328953b60b7670a69f517eae2ea6f (patch)
tree36d096cf91819c663d34f7c9d3834dfd9e7779ca /src/lib/Server/Plugin.py
parentcf1f4029b97f5e3100a7f9c31308a2e8b82657be (diff)
downloadbcfg2-e88008fef62328953b60b7670a69f517eae2ea6f.tar.gz
bcfg2-e88008fef62328953b60b7670a69f517eae2ea6f.tar.bz2
bcfg2-e88008fef62328953b60b7670a69f517eae2ea6f.zip
made SSLCA respect info.xml
Diffstat (limited to 'src/lib/Server/Plugin.py')
-rw-r--r--src/lib/Server/Plugin.py26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/lib/Server/Plugin.py b/src/lib/Server/Plugin.py
index d51a13804..fa5e3ca9d 100644
--- a/src/lib/Server/Plugin.py
+++ b/src/lib/Server/Plugin.py
@@ -50,6 +50,19 @@ info_regex = re.compile( \
'perms:(\s)*(?P<perms>\w+)|' +
'sensitive:(\s)*(?P<sensitive>\S+)|')
+def bind_info(entry, metadata, infoxml=None, default=default_file_metadata):
+ for attr, val in list(default.items()):
+ entry.set(attr, val)
+ if infoxml:
+ mdata = dict()
+ infoxml.pnode.Match(metadata, mdata, entry=entry)
+ if 'Info' not in mdata:
+ msg = "Failed to set metadata for file %s" % entry.get('name')
+ logger.error(msg)
+ raise PluginExecutionError(msg)
+ for attr, val in list(mdata['Info'][None].items()):
+ entry.set(attr, val)
+
class PluginInitError(Exception):
"""Error raised in cases of Plugin initialization errors."""
@@ -1074,18 +1087,7 @@ class EntrySet:
return cmp(x.specific.prio, y.specific.prio)
def bind_info_to_entry(self, entry, metadata):
- # first set defaults from global metadata/:info
- for key in self.metadata:
- entry.set(key, self.metadata[key])
- if self.infoxml:
- mdata = {}
- self.infoxml.pnode.Match(metadata, mdata, entry=entry)
- if 'Info' not in mdata:
- logger.error("Failed to set metadata for file %s" % \
- (entry.get('name')))
- raise PluginExecutionError
- [entry.attrib.__setitem__(key, value) \
- for (key, value) in list(mdata['Info'][None].items())]
+ bind_info(entry, metadata, infoxml=self.infoxml, default=self.metadata)
def bind_entry(self, entry, metadata):
"""Return the appropriate interpreted template from the set of available templates."""