summaryrefslogtreecommitdiffstats
path: root/src
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
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')
-rw-r--r--src/lib/Server/Plugins/Properties.py30
-rw-r--r--src/lib/Server/Plugins/__init__.py6
2 files changed, 33 insertions, 3 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))
diff --git a/src/lib/Server/Plugins/__init__.py b/src/lib/Server/Plugins/__init__.py
index 8fcb34fc6..1e5c122c8 100644
--- a/src/lib/Server/Plugins/__init__.py
+++ b/src/lib/Server/Plugins/__init__.py
@@ -2,6 +2,6 @@
__revision__ = '$Revision$'
__all__ = ['Account', 'Base', 'Bundler', 'Cfg', 'Decisions', 'GBundler',
- 'Hostbase', 'Metadata', 'NagiosGen', 'Packages', 'Probes',
- 'Pkgmgr', 'Rules', 'SSHbase', 'Statistics', 'Svcmgr', 'TCheetah',
- 'SGenshi', 'TGenshi', 'Vhost']
+ 'Hostbase', 'Metadata', 'NagiosGen', 'Packages', 'Properties',
+ 'Probes', 'Pkgmgr', 'Rules', 'SSHbase', 'Statistics', 'Svcmgr',
+ 'TCheetah', 'SGenshi', 'TGenshi', 'Vhost']