mirror of
https://github.com/postgres/pgweb.git
synced 2025-08-13 13:12:42 +00:00
Remove old mirror selection code and data
This has not been used for many years now, so let's get rid of it to save some maintenance.
This commit is contained in:
@ -5,13 +5,7 @@ from django.forms import ValidationError
|
|||||||
import re
|
import re
|
||||||
|
|
||||||
from pgweb.util.admin import PgwebAdmin
|
from pgweb.util.admin import PgwebAdmin
|
||||||
from models import StackBuilderApp, Mirror, Category, Product, LicenceType
|
from models import StackBuilderApp, Category, Product, LicenceType
|
||||||
|
|
||||||
class MirrorAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ('__unicode__', 'country_name', 'country_code', 'mirror_index', 'mirror_last_rsync', 'host_sponsor', )
|
|
||||||
list_filter = ('country_name', 'mirror_active', )
|
|
||||||
search_fields = ('country_name', 'host_sponsor', 'host_notes', )
|
|
||||||
ordering = ('country_code', )
|
|
||||||
|
|
||||||
class ProductAdmin(PgwebAdmin):
|
class ProductAdmin(PgwebAdmin):
|
||||||
list_display = ('name', 'org', 'approved', 'lastconfirmed',)
|
list_display = ('name', 'org', 'approved', 'lastconfirmed',)
|
||||||
@ -58,7 +52,6 @@ class StackBuilderAppAdmin(admin.ModelAdmin):
|
|||||||
actions = [duplicate_stackbuilderapp, ]
|
actions = [duplicate_stackbuilderapp, ]
|
||||||
form = StackBuilderAppAdminForm
|
form = StackBuilderAppAdminForm
|
||||||
|
|
||||||
admin.site.register(Mirror, MirrorAdmin)
|
|
||||||
admin.site.register(Category)
|
admin.site.register(Category)
|
||||||
admin.site.register(LicenceType)
|
admin.site.register(LicenceType)
|
||||||
admin.site.register(Product, ProductAdmin)
|
admin.site.register(Product, ProductAdmin)
|
||||||
|
17
pgweb/downloads/migrations/0002_remove_mirrors.py
Normal file
17
pgweb/downloads/migrations/0002_remove_mirrors.py
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('downloads', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.DeleteModel(
|
||||||
|
name='Mirror',
|
||||||
|
),
|
||||||
|
]
|
@ -4,55 +4,6 @@ from pgweb.core.models import Organisation
|
|||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
class Mirror(models.Model):
|
|
||||||
country_name = models.CharField(max_length=50, null=False, blank=False)
|
|
||||||
country_code = models.CharField(max_length=2, null=False, blank=False)
|
|
||||||
mirror_created = models.DateTimeField(null=False, blank=False, auto_now_add=True)
|
|
||||||
mirror_last_rsync = models.DateTimeField(null=False, blank=False, default=datetime(1970,1,1))
|
|
||||||
mirror_index = models.IntegerField(null=False)
|
|
||||||
host_addr = models.GenericIPAddressField(null=True, default='0.0.0.0')
|
|
||||||
host_path = models.CharField(max_length=100, null=True)
|
|
||||||
host_sponsor = models.CharField(max_length=100, null=True)
|
|
||||||
host_contact = models.CharField(max_length=100, null=True)
|
|
||||||
host_email = models.CharField(max_length=100, null=True)
|
|
||||||
host_notes = models.TextField(null=True)
|
|
||||||
rsync_host1 = models.CharField(max_length=100, null=True)
|
|
||||||
rsync_host2 = models.CharField(max_length=100, null=True)
|
|
||||||
mirror_active = models.BooleanField(null=False, default=True)
|
|
||||||
mirror_dns = models.BooleanField(null=False, default=False)
|
|
||||||
mirror_private = models.BooleanField(null=False, default=False)
|
|
||||||
host_use_cname = models.BooleanField(null=False, default=False)
|
|
||||||
host_cname_host = models.CharField(max_length=100, null=True)
|
|
||||||
mirror_primary = models.BooleanField(null=False, default=False)
|
|
||||||
error_count = models.IntegerField(null=False, default=0)
|
|
||||||
alternate_protocol = models.BooleanField(null=False, default=False)
|
|
||||||
alternate_at_root = models.BooleanField(null=False, default=False)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
db_table='mirrors'
|
|
||||||
|
|
||||||
def __unicode__(self):
|
|
||||||
return "%s.%s" % (self.country_code, self.mirror_index)
|
|
||||||
|
|
||||||
def get_host_name(self):
|
|
||||||
if self.mirror_index == 0:
|
|
||||||
return "ftp.%s.postgresql.org" % self.country_code
|
|
||||||
else:
|
|
||||||
return "ftp%s.%s.postgresql.org" % (self.mirror_index, self.country_code)
|
|
||||||
|
|
||||||
def get_root_path(self, method):
|
|
||||||
if method == 'f' or not self.alternate_at_root:
|
|
||||||
# FTP method, or http with same path, build complete one
|
|
||||||
return ("%s/%s" % (self.get_host_name(), self.host_path)).replace('//','/').rstrip('/')
|
|
||||||
else:
|
|
||||||
# http with alternate_at_root - thus, ignore the path element
|
|
||||||
return self.get_host_name()
|
|
||||||
|
|
||||||
def get_all_protocols(self):
|
|
||||||
if self.alternate_protocol:
|
|
||||||
return ('ftp', 'http', )
|
|
||||||
else:
|
|
||||||
return ('ftp', )
|
|
||||||
|
|
||||||
class Category(models.Model):
|
class Category(models.Model):
|
||||||
catname = models.CharField(max_length=100, null=False, blank=False)
|
catname = models.CharField(max_length=100, null=False, blank=False)
|
||||||
|
@ -14,7 +14,7 @@ from pgweb.util.contexts import NavContext
|
|||||||
from pgweb.util.helpers import simple_form, PgXmlHelper, HttpServerError
|
from pgweb.util.helpers import simple_form, PgXmlHelper, HttpServerError
|
||||||
from pgweb.util.misc import get_client_ip, varnish_purge, version_sort
|
from pgweb.util.misc import get_client_ip, varnish_purge, version_sort
|
||||||
|
|
||||||
from models import Mirror, Category, Product, StackBuilderApp
|
from models import Category, Product, StackBuilderApp
|
||||||
from forms import ProductForm
|
from forms import ProductForm
|
||||||
|
|
||||||
#######
|
#######
|
||||||
@ -127,76 +127,12 @@ def uploadftp(request):
|
|||||||
|
|
||||||
@nocache
|
@nocache
|
||||||
def mirrorselect(request, path):
|
def mirrorselect(request, path):
|
||||||
# We have given up on the advanced mirror network things, and will just
|
# Old access to mirrors will just redirect to the main ftp site.
|
||||||
# redirect this to ftp.mirrors.postgresql.org for now...
|
# We don't really need it anymore, but the cost of keeping it is
|
||||||
# Since requests hit our internal servers, we're also not going to
|
# very low...
|
||||||
# bother logging them - logging will be handled by those servers
|
|
||||||
return HttpResponseRedirect("https://ftp.postgresql.org/pub/%s" % path)
|
return HttpResponseRedirect("https://ftp.postgresql.org/pub/%s" % path)
|
||||||
|
|
||||||
# Accesses asking for a specific mirror will keep doing that for now.
|
|
||||||
# At some time in the future we might consider hijacking them and sending
|
|
||||||
# them to our master mirrors again.
|
|
||||||
def _mirror_redirect_internal(request, scheme, host, path):
|
|
||||||
# Redirect!
|
|
||||||
newurl = "%s://%s/%s" % (scheme, host, path)
|
|
||||||
return HttpResponseRedirect(newurl)
|
|
||||||
|
|
||||||
@nocache
|
|
||||||
def mirror_redirect(request, mirrorid, protocol, path):
|
|
||||||
try:
|
|
||||||
mirror = Mirror.objects.get(pk=mirrorid)
|
|
||||||
except Mirror.DoesNotExist:
|
|
||||||
raise Http404("Specified mirror not found")
|
|
||||||
|
|
||||||
return _mirror_redirect_internal(
|
|
||||||
request,
|
|
||||||
protocol=='h' and 'http' or 'ftp',
|
|
||||||
mirror.get_root_path(protocol),
|
|
||||||
path,
|
|
||||||
)
|
|
||||||
|
|
||||||
@nocache
|
|
||||||
def mirror_redirect_old(request):
|
|
||||||
# Version of redirect that takes parameters in the querystring. This is
|
|
||||||
# only used by the stackbuilder.
|
|
||||||
try:
|
|
||||||
if not request.GET['sb'] == "1":
|
|
||||||
raise Http404("Page not found, you should be using the new URL format!")
|
|
||||||
except:
|
|
||||||
raise Http404("Page not found, you should be using the new URL format!")
|
|
||||||
|
|
||||||
urlpieces = urlparse.urlparse(request.GET['url'])
|
|
||||||
if urlpieces.query:
|
|
||||||
path = "%s?%s" % (urlpieces.path, urlpieces.query)
|
|
||||||
else:
|
|
||||||
path = urlpieces.path
|
|
||||||
|
|
||||||
return _mirror_redirect_internal(
|
|
||||||
request,
|
|
||||||
urlpieces.scheme,
|
|
||||||
urlpieces.netloc,
|
|
||||||
path,
|
|
||||||
)
|
|
||||||
|
|
||||||
def mirrors_xml(request):
|
|
||||||
# Same as in mirrorselect
|
|
||||||
all_mirrors = Mirror.objects.filter(mirror_active=True, mirror_private=False, mirror_dns=True).extra(where=["mirror_last_rsync>(now() - '48 hours'::interval)"]).order_by('country_name', 'mirror_index')
|
|
||||||
|
|
||||||
resp = HttpResponse(content_type='text/xml')
|
|
||||||
x = PgXmlHelper(resp)
|
|
||||||
x.startDocument()
|
|
||||||
x.startElement('mirrors', {})
|
|
||||||
for m in all_mirrors:
|
|
||||||
for protocol in m.get_all_protocols():
|
|
||||||
x.startElement('mirror', {})
|
|
||||||
x.add_xml_element('country', m.country_name)
|
|
||||||
x.add_xml_element('path', m.host_path)
|
|
||||||
x.add_xml_element('protocol', protocol)
|
|
||||||
x.add_xml_element('hostname', m.get_host_name())
|
|
||||||
x.endElement('mirror')
|
|
||||||
x.endElement('mirrors')
|
|
||||||
x.endDocument()
|
|
||||||
return resp
|
|
||||||
|
|
||||||
#######
|
#######
|
||||||
# Product catalogue
|
# Product catalogue
|
||||||
|
@ -34,9 +34,6 @@ urlpatterns = patterns('',
|
|||||||
(r'^download/mirrors-ftp/+(.*)$', 'pgweb.downloads.views.mirrorselect'),
|
(r'^download/mirrors-ftp/+(.*)$', 'pgweb.downloads.views.mirrorselect'),
|
||||||
(r'^download/product-categories/$', 'pgweb.downloads.views.categorylist'),
|
(r'^download/product-categories/$', 'pgweb.downloads.views.categorylist'),
|
||||||
(r'^download/products/(\d+)(-.*)?/$', 'pgweb.downloads.views.productlist'),
|
(r'^download/products/(\d+)(-.*)?/$', 'pgweb.downloads.views.productlist'),
|
||||||
(r'^redir/(\d+)/([hf])/([a-zA-Z0-9/\._-]+)$', 'pgweb.downloads.views.mirror_redirect'),
|
|
||||||
(r'^redir$', 'pgweb.downloads.views.mirror_redirect_old'),
|
|
||||||
(r'^mirrors.xml$', 'pgweb.downloads.views.mirrors_xml'),
|
|
||||||
(r'^applications-v2.xml$', 'pgweb.downloads.views.applications_v2_xml'),
|
(r'^applications-v2.xml$', 'pgweb.downloads.views.applications_v2_xml'),
|
||||||
(r'^download/uploadftp/', 'pgweb.downloads.views.uploadftp'),
|
(r'^download/uploadftp/', 'pgweb.downloads.views.uploadftp'),
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user