euscanwww: finish charts
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
This commit is contained in:
		@@ -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)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user