From c35347887bb3d452d6104b13308d853b3da44b68 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Tue, 8 May 2012 15:09:54 -0400 Subject: modularized Cfg --- src/lib/Bcfg2/Server/Plugins/Cfg/CfgLegacyInfo.py | 28 +++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/lib/Bcfg2/Server/Plugins/Cfg/CfgLegacyInfo.py (limited to 'src/lib/Bcfg2/Server/Plugins/Cfg/CfgLegacyInfo.py') diff --git a/src/lib/Bcfg2/Server/Plugins/Cfg/CfgLegacyInfo.py b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgLegacyInfo.py new file mode 100644 index 000000000..9616f8bba --- /dev/null +++ b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgLegacyInfo.py @@ -0,0 +1,28 @@ +import logging +import Bcfg2.Server.Plugin +from Bcfg2.Server.Plugins.Cfg import CfgInfo + +logger = logging.getLogger('Bcfg2.Plugins.Cfg') + +class CfgLegacyInfo(CfgInfo): + names = ['info', ':info'] + + def bind_info_to_entry(self, entry, metadata): + self._set_info(entry, self.metadata) + + def handle_event(self, event): + if event.code2str() == 'deleted': + return + for line in open(self.path).readlines(): + match = Bcfg2.Server.Plugin.info_regex.match(line) + if not match: + logger.warning("Failed to parse line in %s: %s" % (fpath, line)) + continue + else: + self.metadata = \ + dict([(key, value) + for key, value in list(match.groupdict().items()) + if value]) + if ('perms' in self.metadata and + len(self.metadata['perms']) == 3): + self.metadata['perms'] = "0%s" % self.metadata['perms'] -- cgit v1.2.3-1-g7c22