From a9117a61c0fc1d7341c5276dcdb775eb55818594 Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Wed, 21 Jan 2009 16:56:30 +0000 Subject: Move properties to the connector interface git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5034 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Plugins/Properties.py | 30 ++++++++++++++++++++++++++++++ src/lib/Server/Plugins/__init__.py | 6 +++--- 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 src/lib/Server/Plugins/Properties.py (limited to 'src') 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'] -- cgit v1.2.3-1-g7c22