From ddc74a543f53d4197e990def51628f961af5b8cd Mon Sep 17 00:00:00 2001 From: Sol Jerome Date: Thu, 19 Nov 2009 05:25:25 +0000 Subject: POSIX: Remove support for old-style posix entries This commit forces the user to specify entries on the server side while still maintaining compatibility with old clients via the POSIXCompat plugin. Signed-off-by: Sol Jerome git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5582 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Plugins/Snapshots.py | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) (limited to 'src/lib/Server/Plugins/Snapshots.py') diff --git a/src/lib/Server/Plugins/Snapshots.py b/src/lib/Server/Plugins/Snapshots.py index b71f085d9..0da9f6ffc 100644 --- a/src/lib/Server/Plugins/Snapshots.py +++ b/src/lib/Server/Plugins/Snapshots.py @@ -14,12 +14,11 @@ import threading logger = logging.getLogger('Snapshots') -ftypes = ['ConfigFile', 'SymLink', 'Directory'] -datafields = {'Package': ['version'], +datafields = { + 'Package': ['version'], + 'Path': ['type'], 'Service': ['status'], - 'ConfigFile': ['owner', 'group', 'perms'], - 'Directory': ['owner', 'group', 'perms'], - 'SymLink': ['to']} + } def build_snap_ent(entry): basefields = [] @@ -29,7 +28,7 @@ def build_snap_ent(entry): state = dict([(key, unicode(entry.get(key))) for key in basefields]) desired.update([(key, unicode(entry.get(key))) for key in \ datafields[entry.tag]]) - if entry.tag == 'ConfigFile': + if (entry.tag == 'Path') and (entry.get('type') == 'file'): if entry.text == None: desired['contents'] = None else: @@ -48,7 +47,7 @@ def build_snap_ent(entry): state.update([(key, unicode(entry.get('current_' + key, entry.get(key)))) \ for key in datafields[entry.tag]]) - if entry.tag == 'ConfigFile' and entry.get('exists', 'true') == 'false': + if entry.tag == 'Path' and entry.get('exists', 'true') == 'false': state = None return [desired, state] @@ -92,16 +91,10 @@ class Snapshots(Bcfg2.Server.Plugin.Statistics, for entry in state.find('.//Bad'): data = [False, False, unicode(entry.get('name'))] \ + build_snap_ent(entry) - if entry.tag in ftypes: - etag = 'Path' - else: - etag = entry.tag + etag = entry.tag entries[etag][entry.get('name')] = data for entry in state.find('.//Modified'): - if entry.tag in ftypes: - etag = 'Path' - else: - etag = entry.tag + etag = entry.tag if entry.get('name') in entries[etag]: data = [True, False, unicode(entry.get('name'))] + \ build_snap_ent(entry) -- cgit v1.2.3-1-g7c22