diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2008-08-20 15:50:31 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2008-08-20 15:50:31 +0000 |
commit | 5d36c165a931fb9d9b49e1123d8d0647942339c1 (patch) | |
tree | 41dc9a533daa24d1b69afa746f33e71de500d468 /src/lib/Server/Plugins | |
parent | b8f061a90ac1c2bcc06bb2cf9f960b0664afd19f (diff) | |
download | bcfg2-5d36c165a931fb9d9b49e1123d8d0647942339c1.tar.gz bcfg2-5d36c165a931fb9d9b49e1123d8d0647942339c1.tar.bz2 bcfg2-5d36c165a931fb9d9b49e1123d8d0647942339c1.zip |
Add reporting system schema evolution support (from Stousignant)
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@4884 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/lib/Server/Plugins')
-rw-r--r-- | src/lib/Server/Plugins/DBStats.py | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/src/lib/Server/Plugins/DBStats.py b/src/lib/Server/Plugins/DBStats.py index f3e4fe652..85ba2668b 100644 --- a/src/lib/Server/Plugins/DBStats.py +++ b/src/lib/Server/Plugins/DBStats.py @@ -1,15 +1,27 @@ import Bcfg2.Server.Plugin import Bcfg2.Server.Reports.importscript -from Bcfg2.Server.Reports.reports.models import Client -import difflib, lxml.etree, time +from Bcfg2.Server.Reports.reports.models import Client, Entries +import difflib, lxml.etree, time, logging, datetime +import Bcfg2.Server.Reports.settings + +from Bcfg2.Server.Reports.updatefix import update_database +import traceback +# for debugging output only +logger = logging.getLogger('Bcfg2.Plugins.DBStats') class DBStats(Bcfg2.Server.Plugin.StatisticsPlugin): __name__ = 'DBStats' - __version__ = '$Id: $' - + __version__ = '$Id$' + def __init__(self, core, datastore): self.cpath = "%s/Metadata/clients.xml" % datastore self.core = core + logger.debug("Searching for new models to add to the statistics database") + try: + update_database() + except Exception, inst: + logger.debug(str(inst)) + logger.debug(str(type(inst))) def StoreStatistics(self, mdata, xdata): newstats = xdata.find("Statistics") @@ -20,18 +32,21 @@ class DBStats(Bcfg2.Server.Plugin.StatisticsPlugin): container.append(e) # FIXME need to build a metadata interface to expose a list of clients + # FIXME Server processing the request should be mentionned here + start = time.time() Bcfg2.Server.Reports.importscript.load_stats( self.core.metadata.clientdata, container, 0, True) + logger.info("Imported data in the reason fast path in %s second" % (time.time() - start)) def GetExtra(self, client): c_inst = Client.objects.filter(name=client)[0] return [(a.kind, a.name) for a in - c_inst.current_interaction.extra_items.all()] + c_inst.current_interaction.extra()] def GetCurrentEntry(self, client, e_type, e_name): c_inst = Client.objects.filter(name=client)[0] - result = c_inst.current_interaction.bad_items.filter(kind=e_type, - name=e_name) + result = c_inst.current_interaction.bad().filter(entry__kind=e_type, + entry__name=e_name) if not result: raise Bcfg2.Server.Plugin.PluginExecutionError entry = result[0] |