diff options
Diffstat (limited to 'src/lib/Server/Plugins')
-rw-r--r-- | src/lib/Server/Plugins/Compat.py | 32 | ||||
-rw-r--r-- | src/lib/Server/Plugins/__init__.py | 10 |
2 files changed, 37 insertions, 5 deletions
diff --git a/src/lib/Server/Plugins/Compat.py b/src/lib/Server/Plugins/Compat.py new file mode 100644 index 000000000..c68e7181c --- /dev/null +++ b/src/lib/Server/Plugins/Compat.py @@ -0,0 +1,32 @@ +''' + This plugin provides a compatibility layer which turns new-style + POSIX entries into old-style entries. +''' +__revision__ = '$Revision:$' + +import Bcfg2.Server.Plugin + +COMPAT_DICT = {'configfile': 'ConfigFile', + 'device': 'Device', + 'directory': 'Directory', + 'permissions': 'Permissions', + 'symlink': 'SymLink'} + +class Compat(Bcfg2.Server.Plugin.Plugin, + Bcfg2.Server.Plugin.GoalValidator): + name = 'Compat' + __version__ = '$Id:$' + __author__ = 'bcfg-dev@mcs.anl.gov' + + def __init__(self, core, datastore): + Bcfg2.Server.Plugin.Plugin.__init__(self, core, datastore) + Bcfg2.Server.Plugin.GoalValidator.__init__(self) + + def validate_goals(self, metadata, goals): + for goal in goals: + for entry in goal.getchildren(): + if entry.tag == 'Path': + oldentry = entry + entry.tag = COMPAT_DICT['%s' % entry.get('type')] + entry.set('type', 'Compat') + goal.replace(oldentry, entry) diff --git a/src/lib/Server/Plugins/__init__.py b/src/lib/Server/Plugins/__init__.py index 0d54fc873..88f84e536 100644 --- a/src/lib/Server/Plugins/__init__.py +++ b/src/lib/Server/Plugins/__init__.py @@ -1,8 +1,8 @@ '''imports for Bcfg2.Server.Plugins''' __revision__ = '$Revision$' -__all__ = ['Account', 'Base', 'Bundler', 'Cfg', 'Decisions', 'GBundler', 'Git', - 'Hostbase', 'Metadata', 'NagiosGen', 'Packages', 'Properties', - 'Probes', 'Pkgmgr', 'Rules', 'SSHbase', 'Snapshots' 'Statistics', - 'Svcmgr', 'Svn', 'TCheetah', 'Trigger', 'SGenshi', 'TGenshi', - 'GroupPatterns', 'Ohai'] +__all__ = ['Account', 'Base', 'Bundler', 'Cfg', 'Compat', 'Decisions', + 'GBundler', 'Git', 'Hostbase', 'Metadata', 'NagiosGen', 'Packages', + 'Properties', 'Probes', 'Pkgmgr', 'Rules', 'SSHbase', 'Snapshots', + 'Statistics', 'Svcmgr', 'Svn', 'TCheetah', 'Trigger', 'SGenshi', + 'TGenshi', 'GroupPatterns', 'Ohai'] |