mirrors: pylint discovered cleanups
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
1e3191ff56
commit
1b91de9435
@ -13,7 +13,7 @@
|
||||
from django.db import transaction
|
||||
|
||||
from collections import deque
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime
|
||||
import logging
|
||||
import re
|
||||
import socket
|
||||
@ -134,8 +134,8 @@ def __init__(self, work, num_threads=10):
|
||||
@transaction.commit_on_success
|
||||
def run(self):
|
||||
logger.debug("starting threads")
|
||||
for t in self.threads:
|
||||
t.start()
|
||||
for thread in self.threads:
|
||||
thread.start()
|
||||
logger.debug("joining on all threads")
|
||||
self.tasks.join()
|
||||
logger.debug("processing log entries")
|
||||
|
@ -49,6 +49,6 @@ def resolve_mirrors():
|
||||
mirrorurl.has_ipv4, mirrorurl.has_ipv6)
|
||||
mirrorurl.save(force_update=True)
|
||||
except socket.error, e:
|
||||
logger.warn("error resolving %s: %s", hostname, e)
|
||||
logger.warn("error resolving %s: %s", mirrorurl.hostname, e)
|
||||
|
||||
# vim: set ts=4 sw=4 et:
|
||||
|
@ -7,6 +7,25 @@
|
||||
|
||||
default_cutoff = datetime.timedelta(hours=24)
|
||||
|
||||
def annotate_url(url, delays):
|
||||
'''Given a MirrorURL object, add a few more attributes to it regarding
|
||||
status, including completion_pct, delay, and score.'''
|
||||
url.completion_pct = float(url.success_count) / url.check_count
|
||||
if url.id in delays:
|
||||
url_delays = delays[url.id]
|
||||
url.delay = sum(url_delays, datetime.timedelta()) / len(url_delays)
|
||||
hours = url.delay.days * 24.0 + url.delay.seconds / 3600.0
|
||||
|
||||
if url.completion_pct > 0:
|
||||
divisor = url.completion_pct
|
||||
else:
|
||||
# arbitrary small value
|
||||
divisor = 0.005
|
||||
url.score = (hours + url.duration_avg + url.duration_stddev) / divisor
|
||||
else:
|
||||
url.delay = None
|
||||
url.score = None
|
||||
|
||||
@cache_function(300)
|
||||
def get_mirror_statuses(cutoff=default_cutoff):
|
||||
cutoff_time = datetime.datetime.utcnow() - cutoff
|
||||
@ -31,8 +50,8 @@ def get_mirror_statuses(cutoff=default_cutoff):
|
||||
check_time__gte=cutoff_time)
|
||||
delays = {}
|
||||
for log in times:
|
||||
d = log.check_time - log.last_sync
|
||||
delays.setdefault(log.url_id, []).append(d)
|
||||
delay = log.check_time - log.last_sync
|
||||
delays.setdefault(log.url_id, []).append(delay)
|
||||
|
||||
if urls:
|
||||
last_check = max([u.last_check for u in urls])
|
||||
@ -44,29 +63,14 @@ def get_mirror_statuses(cutoff=default_cutoff):
|
||||
check_frequency = (check_info['mx'] - check_info['mn']) \
|
||||
/ (num_checks - 1)
|
||||
else:
|
||||
check_frequency = None;
|
||||
check_frequency = None
|
||||
else:
|
||||
last_check = None
|
||||
num_checks = 0
|
||||
check_frequency = None
|
||||
|
||||
for url in urls:
|
||||
url.completion_pct = float(url.success_count) / url.check_count
|
||||
if url.id in delays:
|
||||
url_delays = delays[url.id]
|
||||
d = sum(url_delays, datetime.timedelta()) / len(url_delays)
|
||||
url.delay = d
|
||||
hours = d.days * 24.0 + d.seconds / 3600.0
|
||||
|
||||
if url.completion_pct > 0:
|
||||
divisor = url.completion_pct
|
||||
else:
|
||||
# arbitrary small value
|
||||
divisor = 0.005
|
||||
url.score = (hours + url.duration_avg + url.duration_stddev) / divisor
|
||||
else:
|
||||
url.delay = None
|
||||
url.score = None
|
||||
annotate_url(url, delays)
|
||||
|
||||
return {
|
||||
'cutoff': cutoff,
|
||||
|
@ -1,6 +1,5 @@
|
||||
from django import forms
|
||||
from django.core.serializers.json import DjangoJSONEncoder
|
||||
from django.db.models import Avg, Count, Max, Min, StdDev
|
||||
from django.db.models import Q
|
||||
from django.http import Http404, HttpResponse
|
||||
from django.shortcuts import get_object_or_404
|
||||
@ -96,11 +95,11 @@ def find_mirrors(request, countries=None, protocols=None, use_status=False,
|
||||
mimetype='text/plain')
|
||||
|
||||
def mirrors(request):
|
||||
mirrors = Mirror.objects.select_related().order_by('tier', 'country')
|
||||
mirror_list = Mirror.objects.select_related().order_by('tier', 'country')
|
||||
if not request.user.is_authenticated():
|
||||
mirrors = mirrors.filter(public=True, active=True)
|
||||
mirror_list = mirror_list.filter(public=True, active=True)
|
||||
return direct_to_template(request, 'mirrors/mirrors.html',
|
||||
{'mirror_list': mirrors})
|
||||
{'mirror_list': mirror_list})
|
||||
|
||||
def mirror_details(request, name):
|
||||
mirror = get_object_or_404(Mirror, name=name)
|
||||
|
Loading…
Reference in New Issue
Block a user