diff options
author | Michael Elkins <melkins@tislabs.com> | 2010-07-07 21:30:03 +0000 |
---|---|---|
committer | Michael Elkins <melkins@tislabs.com> | 2010-07-07 21:30:03 +0000 |
commit | 36367901f8a9c131311fc27289ab555109095e31 (patch) | |
tree | 0b9b55808558e1a34cf6e5e684c856a66b99da57 | |
parent | 99d707ca1a1c45412d2c693e89fa1e62f7e76d6a (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.py | 26 | ||||
-rw-r--r-- | portal-gui/rpkigui/myrpki/misc.py | 16 | ||||
-rw-r--r-- | portal-gui/rpkigui/myrpki/models.py | 9 | ||||
-rw-r--r-- | portal-gui/rpkigui/myrpki/views.py | 10 |
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', |