diff options
author | Dan McGee <dan@archlinux.org> | 2010-09-24 13:26:08 -0500 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2010-09-24 13:26:08 -0500 |
commit | e82e953aa297f1e54d0aff9b2097aaab6d58d0ba (patch) | |
tree | 88ee0e1badd0b9b512d2902b8f62a8844160448f | |
parent | 00e9dce4db7df23f2fcf43ea8c46ee0d8ca5e262 (diff) |
Mirror status query refinements
Only show errors for active and public mirrors, and collapse two filter
calls into just one for our normal status query.
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | mirrors/utils.py | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/mirrors/utils.py b/mirrors/utils.py index 5c8bff3b..69909dcf 100644 --- a/mirrors/utils.py +++ b/mirrors/utils.py @@ -11,10 +11,9 @@ def get_mirror_statuses(): cutoff_time = datetime.datetime.utcnow() - datetime.timedelta(hours=24) protocols = MirrorProtocol.objects.exclude(protocol__iexact='rsync') # I swear, this actually has decent performance... - urls = MirrorUrl.objects.select_related( - 'mirror', 'protocol').filter( + urls = MirrorUrl.objects.select_related('mirror', 'protocol').filter( mirror__active=True, mirror__public=True, - protocol__in=protocols).filter( + protocol__in=protocols, logs__check_time__gte=cutoff_time).annotate( check_count=Count('logs'), last_sync=Max('logs__last_sync'), last_check=Max('logs__check_time'), @@ -48,7 +47,8 @@ def get_mirror_statuses(): def get_mirror_errors(): cutoff_time = datetime.datetime.utcnow() - datetime.timedelta(hours=24) errors = MirrorLog.objects.filter( - is_success=False, check_time__gte=cutoff_time).values( + is_success=False, check_time__gte=cutoff_time, + url__mirror__active=True, url__mirror__public=True).values( 'url__url', 'url__protocol__protocol', 'url__mirror__country', 'error').annotate( error_count=Count('error'), last_occurred=Max('check_time') |