aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Elkins <melkins@tislabs.com>2010-07-07 21:30:03 +0000
committerMichael Elkins <melkins@tislabs.com>2010-07-07 21:30:03 +0000
commit36367901f8a9c131311fc27289ab555109095e31 (patch)
tree0b9b55808558e1a34cf6e5e684c856a66b99da57
parent99d707ca1a1c45412d2c693e89fa1e62f7e76d6a (diff)
use new rpki.ipaddrss.parse() in lieu of rpkigui.myrpki.misc.str_to_addr()
change calls to rpki.resource_set.resource_range_ip._prefixlen() to .prefixlen() svn path=/portal-gui/rpkigui/myrpki/forms.py; revision=3363
-rw-r--r--portal-gui/rpkigui/myrpki/forms.py26
-rw-r--r--portal-gui/rpkigui/myrpki/misc.py16
-rw-r--r--portal-gui/rpkigui/myrpki/models.py9
-rw-r--r--portal-gui/rpkigui/myrpki/views.py10
4 files changed, 24 insertions, 37 deletions
diff --git a/portal-gui/rpkigui/myrpki/forms.py b/portal-gui/rpkigui/myrpki/forms.py
index 42dbceba..58df6f3e 100644
--- a/portal-gui/rpkigui/myrpki/forms.py
+++ b/portal-gui/rpkigui/myrpki/forms.py
@@ -1,8 +1,10 @@
# $Id$
from django import forms
-import models
-from rpkigui.myrpki.misc import str_to_addr
+
+import rpki.ipaddrs
+
+from rpkigui.myrpki import models
from rpkigui.myrpki.asnset import asnset
class AddConfForm(forms.Form):
@@ -41,11 +43,11 @@ def PrefixSplitForm(prefix, *args, **kwargs):
lo = self.cleaned_data.get('lo')
# convert from string to long representation
try:
- loaddr = str_to_addr(lo)
+ loaddr = rpki.ipaddrs.parse(lo)
except socket.error:
raise forms.ValidationError, 'Invalid IP address string'
- pfx_loaddr = str_to_addr(prefix.lo)
- pfx_hiaddr = str_to_addr(prefix.hi)
+ pfx_loaddr = rpki.ipaddrs.parse(prefix.lo)
+ pfx_hiaddr = rpki.ipaddrs.parse(prefix.hi)
if type(loaddr) != type(pfx_hiaddr):
raise forms.ValidationError, \
'Not the same IP address type as parent'
@@ -58,11 +60,11 @@ def PrefixSplitForm(prefix, *args, **kwargs):
hi = self.cleaned_data.get('hi')
# convert from string to long representation
try:
- hiaddr = str_to_addr(hi)
+ hiaddr = rpki.ipaddrs.parse(hi)
except socket.error:
raise forms.ValidationError, 'Invalid IP address string'
- pfx_loaddr = str_to_addr(prefix.lo)
- pfx_hiaddr = str_to_addr(prefix.hi)
+ pfx_loaddr = rpki.ipaddrs.parse(prefix.lo)
+ pfx_hiaddr = rpki.ipaddrs.parse(prefix.hi)
if type(hiaddr) != type(pfx_loaddr):
raise forms.ValidationError, \
'Not the same IP address type as parent'
@@ -77,8 +79,8 @@ def PrefixSplitForm(prefix, *args, **kwargs):
# hi or lo may be None if field validation failed
if hi and lo:
# convert from string to long representation
- hiaddr = str_to_addr(hi)
- loaddr = str_to_addr(lo)
+ hiaddr = rpki.ipaddrs.parse(hi)
+ loaddr = rpki.ipaddrs.parse(lo)
if hiaddr < loaddr:
raise forms.ValidationError, 'Hi value is smaller than Lo'
if prefix.allocated:
@@ -100,13 +102,13 @@ def PrefixRoaForm(prefix, *args, **kwargs):
asns = forms.CharField(max_length=200, required=False,
help_text='Comma-separated list of ASNs')
max_length = forms.IntegerField(required=False,
- min_value=prefix_range._prefixlen(),
+ min_value=prefix_range.prefixlen(),
max_value=prefix_range.datum_type.bits)
def clean_max_length(self):
v = self.cleaned_data.get('max_length')
if not v:
- v = prefix_range._prefixlen()
+ v = prefix_range.prefixlen()
return v
def clean_asns(self):
diff --git a/portal-gui/rpkigui/myrpki/misc.py b/portal-gui/rpkigui/myrpki/misc.py
index 4e0970a6..cde29669 100644
--- a/portal-gui/rpkigui/myrpki/misc.py
+++ b/portal-gui/rpkigui/myrpki/misc.py
@@ -1,22 +1,12 @@
# $Id$
-import socket
import rpki.resource_set
import rpki.ipaddrs
-def str_to_addr(s):
- '''Convert an IP address string to either a v4addr or v6addr.'''
- if isinstance(s, unicode):
- s = s.encode() # v{4,6}addr require plain string
- try:
- return rpki.ipaddrs.v4addr(s)
- except socket.error:
- return rpki.ipaddrs.v6addr(s)
-
def str_to_range(lo, hi):
- """Convert IP address strings to resourcce_range_ip."""
- x = str_to_addr(lo)
- y = str_to_addr(hi)
+ """Convert IP address strings to resource_range_ip."""
+ x = rpki.ipaddrs.parse(lo)
+ y = rpki.ipaddrs.parse(hi)
assert type(x) == type(y)
if isinstance(x, rpki.ipaddrs.v4addr):
return rpki.resource_set.resource_range_ipv4(x, y)
diff --git a/portal-gui/rpkigui/myrpki/models.py b/portal-gui/rpkigui/myrpki/models.py
index cf062b3c..3bdc0bf3 100644
--- a/portal-gui/rpkigui/myrpki/models.py
+++ b/portal-gui/rpkigui/myrpki/models.py
@@ -5,7 +5,7 @@ import socket
from django.db import models
from django.contrib.auth.models import User
-from rpkigui.myrpki.misc import str_to_range, str_to_addr
+from rpkigui.myrpki.misc import str_to_range
import rpki.resource_set
import rpki.exceptions
@@ -64,7 +64,7 @@ class AddressRange(models.Model):
'''Returns True if this address range can be represented as a
prefix.'''
try:
- self.as_resource_range()._prefixlen()
+ self.as_resource_range().prefixlen()
except rpki.exceptions.MustBePrefix, err:
print err
return False
@@ -81,13 +81,12 @@ class RoaRequest(models.Model):
def as_roa_prefix(self):
'''Convert to a rpki.resouce_set.roa_prefix subclass.'''
-
r = self.prefix.as_resource_range()
if isinstance(r, rpki.resource_set.resource_set_ipv4):
- return rpki.resource_set.roa_prefix_ipv4(r.min, r._prefixlen(),
+ return rpki.resource_set.roa_prefix_ipv4(r.min, r.prefixlen(),
self.max_length)
else:
- return rpki.resource_set.roa_prefix_ipv6(r.min, r._prefixlen(),
+ return rpki.resource_set.roa_prefix_ipv6(r.min, r.prefixlen(),
self.max_length)
def get_absolute_url(self):
diff --git a/portal-gui/rpkigui/myrpki/views.py b/portal-gui/rpkigui/myrpki/views.py
index c9907cde..aa7ad014 100644
--- a/portal-gui/rpkigui/myrpki/views.py
+++ b/portal-gui/rpkigui/myrpki/views.py
@@ -14,7 +14,6 @@ from django.views.generic.list_detail import object_list
from rpkigui.myrpki import models
from rpkigui.myrpki import forms
from rpkigui.myrpki import glue
-from rpkigui.myrpki.misc import str_to_range
from rpkigui.myrpki.asnset import asnset
# For each type of object, we have a detail view, a create view and
@@ -91,7 +90,7 @@ def dashboard(request):
asns, prefixes = unallocated_resources(handle, roa_asns, roa_addrs, asns,
prefixes)
- prefixes.sort(key=lambda x: str_to_range(x.lo, x.hi).min)
+ prefixes.sort(key=lambda x: x.as_resource_range().min)
return render('myrpki/dashboard.html', { 'conf': handle, 'asns': asns,
'ars': prefixes }, request)
@@ -236,13 +235,10 @@ def child_import(request):
glue.invoke_rpki(handle, args)
# send response back to user
- return serve_xml(
- glue.read_child_response(handle, child_handle),
- child_handle)
+ return serve_xml(glue.read_child_response(handle,
+ child_handle), child_handle)
finally:
os.remove(input_file.name)
- else:
- print 'invalid form'
else:
form = forms.ImportForm()
return render('myrpki/xml_import.html',