euscanwww: finish charts

Signed-off-by: Corentin Chary <corentincj@iksaif.net>
This commit is contained in:
Corentin Chary
2011-05-05 18:10:47 +02:00
parent 54f7771b43
commit 917a290e3a
10 changed files with 315 additions and 52 deletions

View File

@ -3,7 +3,7 @@ import datetime
from optparse import make_option
from django.core.management.base import BaseCommand, CommandError
from euscanwww.euscan.models import Package, HerdLog, MaintainerLog, CategoryLog, Herd, Maintainer, Version
from euscanwww.euscan.models import HerdLog, MaintainerLog, CategoryLog, WorldLog
from euscanwww.euscan import charts
class Command(BaseCommand):
@ -11,6 +11,9 @@ class Command(BaseCommand):
help = 'Regenerate rrd database'
def handle(self, *args, **options):
for wlog in WorldLog.objects.all():
charts.rrd_update('world', wlog.datetime, wlog)
for clog in CategoryLog.objects.all():
charts.rrd_update('category-%s' % clog.category, clog.datetime, clog)

View File

@ -122,7 +122,7 @@ class Command(BaseCommand):
cat, pkg, ver, rev = portage.catpkgsplit(cpv)
packages['%s/%s' % (cat, pkg)] = True
continue
if not package or not (cat == package.category and pkg == package.name):
package = self.store_package(options, cat, pkg)

View File

@ -5,17 +5,10 @@ from optparse import make_option
from django.db.models import Count, Sum
from django.db.transaction import commit_on_success
from django.core.management.base import BaseCommand, CommandError
from euscanwww.euscan.models import Package, HerdLog, MaintainerLog, CategoryLog, Herd, Maintainer, Version
from euscanwww.euscan.models import Package, Herd, Maintainer, Version
from euscanwww.euscan.models import HerdLog, MaintainerLog, CategoryLog, WorldLog
from euscanwww.euscan import charts
class World:
n_packages_gentoo = 0
n_packages_overlay = 0
n_packages_outdated = 0
n_versions_gentoo = 0
n_versions_overlay = 0
n_versions_upstream = 0
class Command(BaseCommand):
_overlays = {}
help = 'Update counters'
@ -35,11 +28,13 @@ class Command(BaseCommand):
categories = {}
herds = {}
maintainers = {}
world = World()
# Could be done using raw SQL queries, but I don't have time for that
# right now ...
wlog = WorldLog()
wlog.datetime = now
for cat in Package.objects.values('category').distinct():
clog = CategoryLog()
clog.datetime = now
@ -95,13 +90,13 @@ class Command(BaseCommand):
categories[package.category].n_versions_overlay += package.n_overlay
categories[package.category].n_versions_upstream += package.n_versions - package.n_packaged - package.n_overlay
world.n_packages_gentoo += n_packages_gentoo
world.n_packages_overlay += n_packages_overlay
world.n_packages_outdated += n_packages_outdated
wlog.n_packages_gentoo += n_packages_gentoo
wlog.n_packages_overlay += n_packages_overlay
wlog.n_packages_outdated += n_packages_outdated
world.n_versions_gentoo += package.n_packaged
world.n_versions_overlay += package.n_overlay
world.n_versions_upstream += package.n_versions - package.n_packaged - package.n_overlay
wlog.n_versions_gentoo += package.n_packaged
wlog.n_versions_overlay += package.n_overlay
wlog.n_versions_upstream += package.n_versions - package.n_packaged - package.n_overlay
for clog in categories.values():
if not options['quiet']:
@ -121,4 +116,6 @@ class Command(BaseCommand):
charts.rrd_update('maintainer-%d' % mlog.maintainer.id, now, mlog)
mlog.save()
charts.rrd_update('world', now, world)
wlog.save()
charts.rrd_update('world', now, wlog)