aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki/gui/app
diff options
context:
space:
mode:
authorMichael Elkins <melkins@tislabs.com>2012-01-17 05:02:19 +0000
committerMichael Elkins <melkins@tislabs.com>2012-01-17 05:02:19 +0000
commit1d69510295bae9ee87d810cd9c9f8ce716e9c847 (patch)
treed4493f9b3031df6635e39159c659b11ee77626b4 /rpkid/rpki/gui/app
parent223102db50c00b931bd40e3e9af0b407d345517d (diff)
import initial cut at rpki.gui.routeview app
svn path=/branches/tk161/; revision=4159
Diffstat (limited to 'rpkid/rpki/gui/app')
-rw-r--r--rpkid/rpki/gui/app/templates/rpkigui/routes_view.html27
-rw-r--r--rpkid/rpki/gui/app/urls.py1
-rw-r--r--rpkid/rpki/gui/app/views.py31
3 files changed, 59 insertions, 0 deletions
diff --git a/rpkid/rpki/gui/app/templates/rpkigui/routes_view.html b/rpkid/rpki/gui/app/templates/rpkigui/routes_view.html
new file mode 100644
index 00000000..4ff59355
--- /dev/null
+++ b/rpkid/rpki/gui/app/templates/rpkigui/routes_view.html
@@ -0,0 +1,27 @@
+{% extends "rpkigui/app_base.html" %}
+
+{% block content %}
+
+<div class='page-header'>
+ </h1>Route Views</h1>
+</div>
+
+<p>
+This view shows currently advertised routes for the prefixes listed in resource certs received from RPKI parents.
+
+<table class='zebra-striped'>
+ <tr>
+ <th>Prefix</th>
+ <th>AS</th>
+ </tr>
+ {% for r in routes %}
+ <tr>
+ <td>{{ r.get_prefix_display }}</td>
+ <td>{{ r.asn }}</td>
+ </tr>
+ {% endfor %}
+</table>
+
+{% endblock %}
+
+<!-- vim: set sw=2: -->
diff --git a/rpkid/rpki/gui/app/urls.py b/rpkid/rpki/gui/app/urls.py
index d428b031..bb7da0b4 100644
--- a/rpkid/rpki/gui/app/urls.py
+++ b/rpkid/rpki/gui/app/urls.py
@@ -50,6 +50,7 @@ urlpatterns = patterns('',
(r'^roareq/$', views.roa_request_list),
(r'^roareq/(?P<pk>\d+)$', views.roa_request_view),
(r'^roareq/(?P<pk>\d+)/delete$', views.roa_request_delete_view),
+ (r'^routes/$', views.route_view),
(r'^demo/down/asns/(?P<self_handle>[^/]+)$', views.download_asns),
(r'^demo/down/prefixes/(?P<self_handle>[^/]+)$', views.download_prefixes),
(r'^demo/down/roas/(?P<self_handle>[^/]+)$', views.download_roas),
diff --git a/rpkid/rpki/gui/app/views.py b/rpkid/rpki/gui/app/views.py
index 014a13a3..3ffbccfb 100644
--- a/rpkid/rpki/gui/app/views.py
+++ b/rpkid/rpki/gui/app/views.py
@@ -35,6 +35,9 @@ from django.core.urlresolvers import reverse
from rpki.gui.app import models, forms, glue, misc, AllocationTree, settings
from rpki.gui.app.asnset import asnset
+import rpki.gui.cacheview.models
+import rpki.gui.routeview.models
+
debug = False
def my_login_required(f):
@@ -901,4 +904,32 @@ def destroy_handle(request, handle):
return render('rpkigui/destroy_handle_form.html', { 'form': form ,
'handle': handle }, request)
+@handle_required
+def route_view(request):
+ """
+ Display a list of global routing table entries which match resources listed
+ in received certificates.
+ """
+
+ handle = request.session['handle']
+ log = request.META['wsgi.errors']
+
+ routes = []
+ for p in models.AddressRange.objects.filter(from_cert__parent__in=handle.parents.all()):
+ r = p.as_resource_range()
+ qs = rpki.gui.routeview.models.RouteOrigin.objects.filter(prefix_min__gte=r.min, prefix_max__lte=r.max)
+ for obj in qs:
+ # determine the validation status of each route
+ routes.append(obj)
+
+# status = 'Not Found'
+# status_id = 'notfound'
+#
+# roas = rpki.gui.cacheview.models.ROAPrefix.objects.filter()
+#
+# obj.status = status
+# obj.status_id = status_id
+
+ return render('rpkigui/routes_view.html', { 'routes': routes }, request)
+
# vim:sw=4 ts=8 expandtab