diff options
-rw-r--r-- | rpkid/rpki/gui/cacheview/models.py | 10 | ||||
-rw-r--r-- | rpkid/rpki/gui/cacheview/templates/cacheview/address_detail.html | 17 | ||||
-rw-r--r-- | rpkid/rpki/gui/cacheview/templates/cacheview/addressrange_detail.html | 18 | ||||
-rw-r--r-- | rpkid/rpki/gui/cacheview/templates/cacheview/cert_detail.html | 4 | ||||
-rw-r--r-- | rpkid/rpki/gui/cacheview/urls.py | 10 | ||||
-rw-r--r-- | rpkid/rpki/gui/cacheview/views.py | 8 |
6 files changed, 35 insertions, 32 deletions
diff --git a/rpkid/rpki/gui/cacheview/models.py b/rpkid/rpki/gui/cacheview/models.py index 76314760..addbbbee 100644 --- a/rpkid/rpki/gui/cacheview/models.py +++ b/rpkid/rpki/gui/cacheview/models.py @@ -37,15 +37,15 @@ class AddressRange(models.Model): @models.permalink def get_absolute_url(self): - return ('rpki.gui.cacheview.views.address_view', [str(self.pk)]) + return ('rpki.gui.cacheview.views.addressrange_detail', [str(self.pk)]) def __unicode__(self): if self.min == self.max: return u'%s' % self.min - try: + if self.family == 4: r = resource_range_ipv4.from_strings(self.min, self.max) - except ValueError: + elif self.family == 6: r = resource_range_ipv6.from_strings(self.min, self.max) try: @@ -66,11 +66,11 @@ class ASRange(models.Model): if self.min == self.max: return u'AS%d' % self.min else: - return u'%s-%s' % (self.min, self.max) + return u'AS%s-%s' % (self.min, self.max) @models.permalink def get_absolute_url(self): - return ('rpki.gui.cacheview.views.as_view', [str(self.pk)]) + return ('rpki.gui.cacheview.views.asrange_detail', [str(self.pk)]) class SignedObject(models.Model): """ diff --git a/rpkid/rpki/gui/cacheview/templates/cacheview/address_detail.html b/rpkid/rpki/gui/cacheview/templates/cacheview/address_detail.html deleted file mode 100644 index 069f4270..00000000 --- a/rpkid/rpki/gui/cacheview/templates/cacheview/address_detail.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "base.html" %} - -{% block content %} - -<p> -Range: {{ object.min }} - {{ object.max }} -</p> - -<p>Covered by the following resource certs:</p> - -<ul> -{% for cert in object.certs.all %} -<li><a href="{{ cert.get_absolute_url }}">{{ cert.subject }}</a></li> -{% endfor %} -</ul> - -{% endblock %} diff --git a/rpkid/rpki/gui/cacheview/templates/cacheview/addressrange_detail.html b/rpkid/rpki/gui/cacheview/templates/cacheview/addressrange_detail.html new file mode 100644 index 00000000..76edc1ba --- /dev/null +++ b/rpkid/rpki/gui/cacheview/templates/cacheview/addressrange_detail.html @@ -0,0 +1,18 @@ +{% extends "cacheview/cacheview_base.html" %} + +{% block content %} +<h1>{% block title %}IP Range Detail{% endblock %}</h1> + +<p> +IP Range: {{ object }} +</p> + +<p>Covered by the following resource certs:</p> + +<ul> +{% for cert in object.certs.all %} +<li><a href="{{ cert.get_absolute_url }}">{{ cert }}</a></li> +{% endfor %} +</ul> + +{% endblock %} diff --git a/rpkid/rpki/gui/cacheview/templates/cacheview/cert_detail.html b/rpkid/rpki/gui/cacheview/templates/cacheview/cert_detail.html index 80921ac0..276aa8b2 100644 --- a/rpkid/rpki/gui/cacheview/templates/cacheview/cert_detail.html +++ b/rpkid/rpki/gui/cacheview/templates/cacheview/cert_detail.html @@ -22,7 +22,7 @@ Resource Certificate Detail {% if object.asns.all %} <ul> {% for asn in object.asns.all %} -<li>{{ asn }} +<li><a href="{{ asn.get_absolute_url }}">{{ asn }}</a> {% endfor %} </ul> {% else %} @@ -35,7 +35,7 @@ Resource Certificate Detail {% if object.addresses.all %} <ul> {% for rng in object.addresses.all %} -<li>{{ rng }} +<li><a href="{{ rng.get_absolute_url }}">{{ rng }}</a> {% endfor %} </ul> {% else %} diff --git a/rpkid/rpki/gui/cacheview/urls.py b/rpkid/rpki/gui/cacheview/urls.py index bbc14b35..62dc8d61 100644 --- a/rpkid/rpki/gui/cacheview/urls.py +++ b/rpkid/rpki/gui/cacheview/urls.py @@ -18,11 +18,13 @@ PERFORMANCE OF THIS SOFTWARE. from django.conf.urls.defaults import * urlpatterns = patterns('', - (r'^query$', 'rpki.gui.cacheview.views.query_view'), - (r'^search$', 'rpki.gui.cacheview.views.search_view'), + (r'^query$', 'rpki.gui.cacheview.views.query_view'), + (r'^search$', 'rpki.gui.cacheview.views.search_view'), + (r'^as/(?P<pk>[^/]+)$', 'rpki.gui.cacheview.views.asrange_detail'), + (r'^addr/(?P<pk>[^/]+)$', 'rpki.gui.cacheview.views.addressrange_detail'), (r'^cert/(?P<pk>[^/]+)$', 'rpki.gui.cacheview.views.cert_detail'), - (r'^roa/(?P<pk>[^/]+)$', 'rpki.gui.cacheview.views.roa_detail'), - (r'^gbr/(?P<pk>[^/]+)$', 'rpki.gui.cacheview.views.ghostbuster_detail'), + (r'^gbr/(?P<pk>[^/]+)$', 'rpki.gui.cacheview.views.ghostbuster_detail'), + (r'^roa/(?P<pk>[^/]+)$', 'rpki.gui.cacheview.views.roa_detail'), ) # vim:sw=4 ts=8 expandtab diff --git a/rpkid/rpki/gui/cacheview/views.py b/rpkid/rpki/gui/cacheview/views.py index 733dc5b1..4001fda7 100644 --- a/rpkid/rpki/gui/cacheview/views.py +++ b/rpkid/rpki/gui/cacheview/views.py @@ -24,10 +24,10 @@ from rpki.ipaddrs import v4addr, v6addr # Create your views here. -def address_detail(request, pk): +def addressrange_detail(request, pk): return list_detail.object_detail(request, models.AddressRange.objects.all(), pk) -def as_detail(request, pk): +def asrange_detail(request, pk): return list_detail.object_detail(request, models.ASRange.objects.all(), pk) def roa_detail(request, pk): @@ -51,8 +51,8 @@ def search_view(request): if addr: family, r = misc.parse_ipaddr(addr) - certs = models.Cert.objects.filter(addresses__family=family, addresses__min__gte=r.min, addresses__max__lte=r.max).distinct() - roas = models.ROA.objects.filter(prefixes__family=family, prefixes__prefix=str(r.min)).distinct() + certs = models.Cert.objects.filter(addresses__family=family, addresses__min=str(r.min), addresses__max=str(r.max)) + roas = models.ROA.objects.filter(prefixes__family=family, prefixes__prefix=str(r.min)) elif asn: r = resource_range_as.parse_str(asn) certs = models.Cert.objects.filter(asns__min__gte=r.min, asns__max__lte=r.max) |