diff options
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Cfg/CfgLegacyInfo.py')
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Cfg/CfgLegacyInfo.py | 28 |
1 files changed, 28 insertions, 0 deletions
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..54c17c6c5 --- /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(__name__) + +class CfgLegacyInfo(CfgInfo): + __basenames__ = ['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'] |