From e3e0d8d72e21f58c23ddf51d5af9d9200ee5037a Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Thu, 7 Aug 2008 20:16:29 +0000 Subject: Implement GetCurrentEntry api for Statistics and DBStats (prereq for portable bcfg2-admin pull) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@4869 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Plugins/DBStats.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/lib/Server/Plugins/DBStats.py') diff --git a/src/lib/Server/Plugins/DBStats.py b/src/lib/Server/Plugins/DBStats.py index 6e9be82d0..abe8f17f7 100644 --- a/src/lib/Server/Plugins/DBStats.py +++ b/src/lib/Server/Plugins/DBStats.py @@ -1,7 +1,7 @@ import Bcfg2.Server.Plugin import Bcfg2.Server.Reports.importscript from Bcfg2.Server.Reports.reports.models import Client -import lxml.etree, time +import difflib, lxml.etree, time class DBStats(Bcfg2.Server.Plugin.StatisticsPlugin): __name__ = 'DBStats' @@ -28,4 +28,21 @@ class DBStats(Bcfg2.Server.Plugin.StatisticsPlugin): return [(a.kind, a.name) for a in c_inst.current_interaction.extra_items.all()] - + def GetCurrentEntry(self, client, e_type, e_name): + c_inst = Client.objects.filter(name=client)[0] + entry = c_inst.current_interaction.bad_items.filter(kind=e_type, + name=e_name)[0] + ret = [] + data = ('owner', 'group', 'perms') + for t in data: + if getattr(entry.reason, "current_%s" % t) == '': + ret.append(getattr(entry.reason, t)) + else: + ret.append(getattr(entry.reason, "current_%s" % t)) + + if entry.reason.current_diff != '': + ret.append('\n'.join(difflib.restore(\ + entry.reason.current_diff.split('\n'), 1))) + else: + ret.append(None) + return ret -- cgit v1.2.3-1-g7c22