Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
mirror.fail()
return
sha = get_sha(checksum_type, data)
if sha is None:
mirror.fail()
return
if not checksum_is_valid(sha, checksum, mirror):
mirror.fail()
return
if mirror.file_checksum == checksum:
text = 'Mirror checksum has not changed, '
text += 'not refreshing package metadata'
warning_message.send(sender=None, text=text)
return
mirror.file_checksum = checksum
if hasattr(settings, 'MAX_MIRRORS') and \
isinstance(settings.MAX_MIRRORS, int):
max_mirrors = settings.MAX_MIRRORS
# only refresh X mirrors, where X = max_mirrors
checksum_q = Q(mirrorlist=False, refresh=True, timestamp=ts,
file_checksum=checksum)
have_checksum = mirror.repo.mirror_set.filter(checksum_q).count()
if have_checksum >= max_mirrors:
text = '{0!s} mirrors already have this '.format(max_mirrors)
text += 'checksum, ignoring refresh to save time'
info_message.send(sender=None, text=text)
else:
res = find_mirror_url(mirror.url, [fname])
mirror.last_access_ok = response_is_valid(res)
if mirror.last_access_ok:
mirror_url = res.url
text = 'Found arch repo - {0!s}'.format(mirror_url)
info_message.send(sender=None, text=text)
data = download_url(res, 'Downloading repo info:')
if data is None:
mirror.fail()
return
sha1 = get_sha1(data)
if mirror.file_checksum == sha1:
text = 'Mirror checksum has not changed, '
text += 'not refreshing package metadata'
warning_message.send(sender=None, text=text)
else:
packages = extract_arch_packages(data)
mirror.last_access_ok = True
mirror.timestamp = datetime.now()
update_mirror_packages(mirror, packages)
mirror.file_checksum = sha1
packages.clear()
else:
mirror.fail()
mirror.save()
""" Creates mirrors from a list of mirror urls
"""
for mirror_url in mirror_urls:
mirror_url = mirror_url.decode('ascii')
mirror_url = mirror_url.replace('$ARCH', mirror.repo.arch.name)
mirror_url = mirror_url.replace('$basearch', mirror.repo.arch.name)
if hasattr(settings, 'MAX_MIRRORS') and \
isinstance(settings.MAX_MIRRORS, int):
max_mirrors = settings.MAX_MIRRORS
# only add X mirrors, where X = max_mirrors
q = Q(mirrorlist=False, refresh=True)
existing = mirror.repo.mirror_set.filter(q).count()
if existing >= max_mirrors:
text = '{0!s} mirrors already '.format(max_mirrors)
text += 'exist, not adding {0!s}'.format(mirror_url)
warning_message.send(sender=None, text=text)
continue
from repos.models import Mirror
m, c = Mirror.objects.get_or_create(repo=mirror.repo, url=mirror_url)
if c:
text = 'Added mirror - {0!s}'.format(mirror_url)
info_message.send(sender=None, text=text)
res = find_mirror_url(mirror.url, formats)
mirror.last_access_ok = response_is_valid(res)
if mirror.last_access_ok:
mirror_url = res.url
text = 'Found deb repo - {0!s}'.format(mirror_url)
info_message.send(sender=None, text=text)
data = download_url(res, 'Downloading repo info:')
if data is None:
mirror.fail()
return
sha1 = get_sha1(data)
if mirror.file_checksum == sha1:
text = 'Mirror checksum has not changed, '
text += 'not refreshing package metadata'
warning_message.send(sender=None, text=text)
else:
packages = extract_deb_packages(data, mirror_url)
mirror.last_access_ok = True
mirror.timestamp = datetime.now()
update_mirror_packages(mirror, packages)
mirror.file_checksum = sha1
packages.clear()
else:
mirror.fail()
mirror.save()
mirror.save()
if not self.auth_required:
if self.repotype == Repository.DEB:
refresh_deb_repo(self)
elif self.repotype == Repository.RPM:
refresh_rpm_repo(self)
elif self.repotype == Repository.ARCH:
refresh_arch_repo(self)
else:
text = 'Error: unknown repo type for repo '
text += '{0!s}: {1!s}'.format(self.id, self.repotype)
error_message.send(sender=None, text=text)
else:
text = 'Repo requires certificate authentication, not updating'
warning_message.send(sender=None, text=text)