summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTim Laszlo <tim.laszlo@gmail.com>2012-10-11 14:31:14 -0500
committerTim Laszlo <tim.laszlo@gmail.com>2012-10-11 14:32:32 -0500
commit0b9a295dadcba6a79f5450db20fdf4b3cce27715 (patch)
tree38bcfa5568467d40b715da3446c6d56d7c949a5c /src
parent6913192ccc90f3d4ff53cbb8a6146fb26f74c421 (diff)
downloadbcfg2-0b9a295dadcba6a79f5450db20fdf4b3cce27715.tar.gz
bcfg2-0b9a295dadcba6a79f5450db20fdf4b3cce27715.tar.bz2
bcfg2-0b9a295dadcba6a79f5450db20fdf4b3cce27715.zip
Admin.Reports: Add database stats method
Diffstat (limited to 'src')
-rw-r--r--src/lib/Bcfg2/Server/Admin/Reports.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/lib/Bcfg2/Server/Admin/Reports.py b/src/lib/Bcfg2/Server/Admin/Reports.py
index dee56bed5..e4125c2f8 100644
--- a/src/lib/Bcfg2/Server/Admin/Reports.py
+++ b/src/lib/Bcfg2/Server/Admin/Reports.py
@@ -70,6 +70,7 @@ class Reports(Bcfg2.Server.Admin.Mode):
" --days [n] Records older then n days\n"
" --expired Expired clients only\n"
" scrub Scrub the database for duplicate reasons and orphaned entries\n"
+ " stats print database statistics\n"
" update Apply any updates to the reporting database\n"
"\n"
" Django commands:\n " \
@@ -94,6 +95,8 @@ class Reports(Bcfg2.Server.Admin.Mode):
self.django_command_proxy(args[0])
elif args[0] == 'scrub':
self.scrub()
+ elif args[0] == 'stats':
+ self.stats()
elif args[0] in ['init', 'update', 'syncdb']:
if self.setup['debug']:
vrb = 2
@@ -258,5 +261,13 @@ class Reports(Bcfg2.Server.Admin.Mode):
self.log.debug("Purging client %s" % client)
Interaction.objects.filter(client=client).delete()
client.delete()
- self.log.debug("Pruning orphan Performance objects")
- Performance.prune_orphans()
+
+ def stats(self):
+ classes = (Client, Interaction, Performance, \
+ FailureEntry, ActionEntry, PathEntry, PackageEntry, \
+ ServiceEntry, Group, Bundle)
+
+ for cls in classes:
+ print("%s has %s records" % (cls().__class__.__name__,
+ cls.objects.count()))
+