From 5c701e5172176742da4621322bdcc285c8b53bc7 Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Thu, 5 Mar 2009 22:31:04 +0000 Subject: Snapshots: improve generality of the importer git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5105 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Plugins/Snapshots.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'src/lib/Server/Plugins') diff --git a/src/lib/Server/Plugins/Snapshots.py b/src/lib/Server/Plugins/Snapshots.py index 6f33fff4d..40a153034 100644 --- a/src/lib/Server/Plugins/Snapshots.py +++ b/src/lib/Server/Plugins/Snapshots.py @@ -24,36 +24,36 @@ class Snapshots(Bcfg2.Server.Plugin.Statistics, t1 = time.time() entries = dict([('Package', dict()), ('Service', dict()), ('Path', dict())]) - extra = dict([('Package', list()), ('Service', list()), - ('Path', list())]) - pdisp = {'Package': 'version', - 'Service': 'status'} + extra = dict([('Package', dict()), ('Service', dict()), + ('Path', dict())]) + pdisp = {'Package': ['name', 'type', 'version'], + 'Service': ['name', 'type', 'status']} for entry in xdata.find('.//Bad'): if entry.tag not in pdisp: print "Not Found", entry.tag, entry.get('name') continue else: - data = [False, False, unicode(entry.get('type')), - unicode(entry.get('%s_%s' % ('current', pdisp[entry.tag]))), - unicode(entry.get('%s_%s' % ('current', pdisp[entry.tag])))] + edata = dict([(key, unicode(entry.get('current_%s' % key))) \ + for key in pdisp[entry.tag]]) + data = [False, False, edata, edata] entries[entry.tag][entry.get('name')] = data for entry in xdata.find('.//Modified'): if entry.tag in pdisp: if entry.get('name') in entries[entry.tag]: entries[entry.tag][entry.get('name')][0] = True else: - data = [False, False, unicode(entry.get('type')), - unicode(entry.get('%s_%s' % ('current', pdisp[entry.tag]))), - unicode(entry.get(pdisp[entry.tag]))] + current = dict([(key, unicode(entry.get('current_%s' % key))) \ + for key in pdisp[entry.tag]]) + desired = dict([(key, unicode(entry.get(key))) \ + for key in pdisp[entry.tag]]) + data = [False, False, current, desired] entries[entry.tag][entry.get('name')] = data else: print entry.tag, entry.get('name') for entry in xdata.find('.//Extra'): if entry.tag in pdisp: - tname = pdisp[entry.tag] - data = dict([('name', unicode(entry.get('name'))), - ('type', unicode(entry.get('type'))), - (tname, unicode(entry.get(tname)))]) + current = dict([(key, unicode(entry.get(key))) for key in pdisp[entry.tag]]) + extra[entry.tag][entry.get('name')] = current else: print "extra", entry.tag, entry.get('name') t2 = time.time() -- cgit v1.2.3-1-g7c22