aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rpkid/rpki/gui/cacheview/models.py10
-rw-r--r--rpkid/rpki/gui/cacheview/templates/cacheview/address_detail.html17
-rw-r--r--rpkid/rpki/gui/cacheview/templates/cacheview/addressrange_detail.html18
-rw-r--r--rpkid/rpki/gui/cacheview/templates/cacheview/cert_detail.html4
-rw-r--r--rpkid/rpki/gui/cacheview/urls.py10
-rw-r--r--rpkid/rpki/gui/cacheview/views.py8
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)