diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-05-21 11:21:40 -0400 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-05-21 11:21:40 -0400 |
commit | e88008fef62328953b60b7670a69f517eae2ea6f (patch) | |
tree | 36d096cf91819c663d34f7c9d3834dfd9e7779ca /src/lib/Server/Plugin.py | |
parent | cf1f4029b97f5e3100a7f9c31308a2e8b82657be (diff) | |
download | bcfg2-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.py | 26 |
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.""" |