Honor mirror URL active attribute in several places
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
bbeb927605
commit
e50471b9a7
@ -63,7 +63,7 @@ def handle_noargs(self, **options):
|
||||
timeout = options.get('timeout')
|
||||
|
||||
urls = MirrorUrl.objects.select_related('protocol').filter(
|
||||
mirror__active=True, mirror__public=True)
|
||||
active=True, mirror__active=True, mirror__public=True)
|
||||
|
||||
location = options.get('location', None)
|
||||
if location:
|
||||
|
@ -39,7 +39,7 @@ def handle_noargs(self, **options):
|
||||
|
||||
def resolve_mirrors():
|
||||
logger.debug("requesting list of mirror URLs")
|
||||
for mirrorurl in MirrorUrl.objects.filter(mirror__active=True):
|
||||
for mirrorurl in MirrorUrl.objects.filter(active=True, mirror__active=True):
|
||||
try:
|
||||
# save old values, we can skip no-op updates this way
|
||||
oldvals = (mirrorurl.has_ipv4, mirrorurl.has_ipv6)
|
||||
|
@ -116,7 +116,10 @@ def annotate_url(url, url_data):
|
||||
def get_mirror_statuses(cutoff=DEFAULT_CUTOFF, mirror_id=None):
|
||||
cutoff_time = now() - cutoff
|
||||
|
||||
valid_urls = MirrorUrl.objects.filter(
|
||||
# TODO: this prevents grabbing data points from any mirror that was active,
|
||||
# receiving checks, and then marked private. we can probably be smarter and
|
||||
# filter the data later?
|
||||
valid_urls = MirrorUrl.objects.filter(active=True,
|
||||
mirror__active=True, mirror__public=True,
|
||||
logs__check_time__gte=cutoff_time).distinct()
|
||||
|
||||
@ -159,7 +162,7 @@ def get_mirror_statuses(cutoff=DEFAULT_CUTOFF, mirror_id=None):
|
||||
def get_mirror_errors(cutoff=DEFAULT_CUTOFF, mirror_id=None):
|
||||
cutoff_time = now() - cutoff
|
||||
errors = MirrorLog.objects.filter(
|
||||
is_success=False, check_time__gte=cutoff_time,
|
||||
is_success=False, check_time__gte=cutoff_time, url__active=True,
|
||||
url__mirror__active=True, url__mirror__public=True).values(
|
||||
'url__url', 'url__country', 'url__protocol__protocol',
|
||||
'url__mirror__tier', 'error').annotate(
|
||||
@ -189,13 +192,14 @@ def get_mirror_url_for_download(cutoff=DEFAULT_CUTOFF):
|
||||
min_sync_time = status_data['last_sync__max'] - timedelta(minutes=20)
|
||||
best_logs = MirrorLog.objects.filter(is_success=True,
|
||||
check_time__gte=min_check_time, last_sync__gte=min_sync_time,
|
||||
url__active=True,
|
||||
url__mirror__public=True, url__mirror__active=True,
|
||||
url__protocol__default=True).order_by(
|
||||
'duration')[:1]
|
||||
if best_logs:
|
||||
return MirrorUrl.objects.get(id=best_logs[0].url_id)
|
||||
|
||||
mirror_urls = MirrorUrl.objects.filter(
|
||||
mirror_urls = MirrorUrl.objects.filter(active=True,
|
||||
mirror__public=True, mirror__active=True, protocol__default=True)
|
||||
# look first for a country-agnostic URL, then fall back to any HTTP URL
|
||||
filtered_urls = mirror_urls.filter(country='')[:1]
|
||||
|
@ -40,10 +40,13 @@ def __init__(self, *args, **kwargs):
|
||||
fields['protocol'].choices = protos
|
||||
fields['protocol'].initial = [p.protocol for p in initial]
|
||||
fields['ip_version'].initial = ['4']
|
||||
locations = [(l.id, l.source_ip) for l in
|
||||
CheckLocation.objects.all()]
|
||||
fields['check_location'].choices = locations
|
||||
|
||||
def get_countries(self):
|
||||
country_codes = set()
|
||||
country_codes.update(MirrorUrl.objects.filter(
|
||||
country_codes.update(MirrorUrl.objects.filter(active=True,
|
||||
mirror__active=True).exclude(country='').values_list(
|
||||
'country', flat=True).order_by().distinct())
|
||||
countries = [(code, self.countries[code]) for code in country_codes]
|
||||
@ -102,7 +105,7 @@ def find_mirrors(request, countries=None, protocols=None, use_status=False,
|
||||
else:
|
||||
protocols = MirrorProtocol.objects.filter(protocol__in=protocols)
|
||||
qset = MirrorUrl.objects.select_related().filter(
|
||||
protocol__in=protocols,
|
||||
protocol__in=protocols, active=True,
|
||||
mirror__public=True, mirror__active=True)
|
||||
if countries and 'all' not in countries:
|
||||
qset = qset.filter(country__in=countries)
|
||||
|
Loading…
Reference in New Issue
Block a user