summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Plugins/Properties.py
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2009-01-21 16:56:30 +0000
committerNarayan Desai <desai@mcs.anl.gov>2009-01-21 16:56:30 +0000
commita9117a61c0fc1d7341c5276dcdb775eb55818594 (patch)
tree4ea67c3812af7f6663c1ef180d472869d57ad95f /src/lib/Server/Plugins/Properties.py
parentf0fdd4a902717c7bfbdd5a636f771fb605cc5f4f (diff)
downloadbcfg2-a9117a61c0fc1d7341c5276dcdb775eb55818594.tar.gz
bcfg2-a9117a61c0fc1d7341c5276dcdb775eb55818594.tar.bz2
bcfg2-a9117a61c0fc1d7341c5276dcdb775eb55818594.zip
Move properties to the connector interface
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5034 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/lib/Server/Plugins/Properties.py')
-rw-r--r--src/lib/Server/Plugins/Properties.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/lib/Server/Plugins/Properties.py b/src/lib/Server/Plugins/Properties.py
new file mode 100644
index 000000000..61e80bfe3
--- /dev/null
+++ b/src/lib/Server/Plugins/Properties.py
@@ -0,0 +1,30 @@
+import copy, lxml.etree
+import Bcfg2.Server.Plugin
+
+class Properties(Bcfg2.Server.Plugin.XMLFileBacked):
+ '''Class for properties files'''
+ def Index(self):
+ '''Build data into an xml object'''
+ try:
+ self.data = lxml.etree.XML(self.data)
+ except lxml.etree.XMLSyntaxError:
+ logger.error("Failed to parse %s" % self.name)
+
+class PropDirectoryBacked(Bcfg2.Server.Plugin.DirectoryBacked):
+ __child__ = Properties
+
+class Properties(Bcfg2.Server.Plugin.Plugin,
+ Bcfg2.Server.Plugin.Connector):
+ '''The properties plugin maps property files into client metadata instances'''
+ name = 'Properties'
+ version = '$Revision: $'
+ experimental = True
+
+
+ def __init__(self, core, datastore):
+ Bcfg2.Server.Plugin.Plugin.__init__(self, core, datastore)
+ Bcfg2.Server.Plugin.Connector.__init__(self)
+ self.store = PropDirectoryBacked(self.data, core.fam)
+
+ def get_additional_metadata(self, _):
+ return ((), copy.deepcopy(self.store.entries))