aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--portal-gui/rpkigui/myrpki/glue.py51
-rw-r--r--portal-gui/rpkigui/myrpki/urls.py2
2 files changed, 30 insertions, 23 deletions
diff --git a/portal-gui/rpkigui/myrpki/glue.py b/portal-gui/rpkigui/myrpki/glue.py
index 868687a5..e092820a 100644
--- a/portal-gui/rpkigui/myrpki/glue.py
+++ b/portal-gui/rpkigui/myrpki/glue.py
@@ -4,10 +4,15 @@ from __future__ import with_statement
import os
import os.path
-import math
-import rpki
-from rpki.myrpki import csv_writer
+import csv
+
from django.conf import settings
+from django.db.models import F
+
+import rpki
+import rpki.config
+
+from rpkigui.myrpki import models
#def form_to_conf(data):
# """Write out a myrpki.conf based on the given form data."""
@@ -35,7 +40,7 @@ def invoke_rpki(handle, args):
def read_identity(handle):
fname = settings.MYRPKI_DATA_DIR + '/' + handle + '/entitydb/identity.xml'
with open(fname, 'r') as fp:
- data = fp.read()
+ data = fp.read()
return data
def read_child_response(handle, child):
@@ -44,28 +49,32 @@ def read_child_response(handle, child):
data = fp.read()
return data
+# FIXME - remove this once rpki.myrpki.csv_writer is an object with a
+# .file field
+def csv_writer(f):
+ return csv.writer(f, dialect = csv.get_dialect("excel-tab"))
+
def output_asns(path, handle):
- '''Write out csv file containing resources delegated to my children.'''
- f = csv_writer(path)
- for p in handle.children.all():
- for asn in p.asn.all():
- if asn.lo == asn.hi:
- f.writerow([p.handle, asn.lo])
+ '''Write out csv file containing asns delegated to my children.'''
+ qs = models.Asn.objects.filter(lo=F('hi'), allocated__in=handle.children.all())
+ with open(path, 'w') as f:
+ w = csv_writer(f)
+ w.writerows([asn.allocated.handle, asn.lo] for asn in qs)
def output_prefixes(path, handle):
- '''Write out csv file containing resources delegated to my children.'''
- confdir = settings.MYRPKI_DATA_DIR + '/' + handle.handle
- f = csv_writer(path)
- for p in handle.children.all():
- for prefix in p.address_range.all():
- f.writerow([p.handle, '%s-%s' % (prefix.lo, prefix.hi)])
+ '''Write out csv file containing prefixes delegated to my children.'''
+ qs = models.AddressRange.objects.filter(allocated__in=handle.children.all())
+ with open(path, 'w') as f:
+ w = csv_writer(f)
+ w.writerows([p.allocated.handle, p.as_resource_range()] for p in qs)
def output_roas(path, handle):
- f = csv_writer(path)
- for roa in handle.roas.all():
- for req in roa.from_roa_request.all():
- f.writerow([req.as_roa_prefix(), roa.asn,
- '%s-group-%d' % (handle.handle, roa.pk)])
+ '''Write out csv file containing my roas.'''
+ qs = models.RoaRequest.objects.filter(roa__in=handle.roas.all())
+ with open(path, 'w') as f:
+ w = csv_writer(f)
+ w.writerows([req.as_roa_prefix(), req.roa.asn,
+ '%s-group-%d' % (handle.handle, req.roa.pk)] for req in qs)
def configure_resources(handle):
'''Write out the csv files and invoke the myrpki.py command line tool.'''
diff --git a/portal-gui/rpkigui/myrpki/urls.py b/portal-gui/rpkigui/myrpki/urls.py
index 4ee97984..2c003b77 100644
--- a/portal-gui/rpkigui/myrpki/urls.py
+++ b/portal-gui/rpkigui/myrpki/urls.py
@@ -24,8 +24,6 @@ urlpatterns = patterns('',
(r'^asn/(?P<pk>\d+)$', views.asn_view),
(r'^asn/(?P<pk>\d+)/allocate$', views.asn_allocate_view),
(r'^roa/(?P<pk>\d+)/delete$', views.roa_request_delete_view)
-# (r'^roa/$', views.roa_edit ),
-# (r'^roa/(?P<pk>\d+)$', views.roa_edit ),
)
# vim:sw=4 ts=8 expandtab