aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Elkins <melkins@tislabs.com>2010-07-04 05:05:20 +0000
committerMichael Elkins <melkins@tislabs.com>2010-07-04 05:05:20 +0000
commitbfcc253383fa1ee4ba9d35759e6bbfc1b2c1597b (patch)
treed96fb48054da97b8d1d9d10999de4385f39ac886
parentdcea98e07c74de89afaa89f9ec019714daeff043 (diff)
pretty print address ranges in cidr when possible
svn path=/portal-gui/rpkigui/myrpki/misc.py; revision=3329
-rw-r--r--portal-gui/rpkigui/myrpki/misc.py15
-rw-r--r--portal-gui/rpkigui/myrpki/models.py5
2 files changed, 19 insertions, 1 deletions
diff --git a/portal-gui/rpkigui/myrpki/misc.py b/portal-gui/rpkigui/myrpki/misc.py
new file mode 100644
index 00000000..d8881694
--- /dev/null
+++ b/portal-gui/rpkigui/myrpki/misc.py
@@ -0,0 +1,15 @@
+# $Id$
+
+import socket
+import rpki.resource_set
+import rpki.ipaddrs
+
+def str_to_range(lo, hi):
+ """Convert IP address string to resourcce_range_ip."""
+ try:
+ v = rpki.resource_set.resource_range_ipv4(rpki.ipaddrs.v4addr(str(lo)), rpki.ipaddrs.v4addr(str(hi)))
+ except socket.error:
+ v = rpki.resource_set.resource_range_ipv6(rpki.ipaddrs.v6addr(str(lo)), rpki.ipaddrs.v6addr(str(hi)))
+ return v
+
+# vim:sw=4 ts=8 expandtab
diff --git a/portal-gui/rpkigui/myrpki/models.py b/portal-gui/rpkigui/myrpki/models.py
index 329cd641..7823b9ff 100644
--- a/portal-gui/rpkigui/myrpki/models.py
+++ b/portal-gui/rpkigui/myrpki/models.py
@@ -2,6 +2,8 @@
from django.db import models
from django.contrib.auth.models import User
+from rpkigui.myrpki.misc import str_to_range
+import rpki.resource_set
class HandleField(models.CharField):
def __init__(self, **kwargs):
@@ -42,7 +44,8 @@ class AddressRange(models.Model):
if self.lo == self.hi:
return u"%s" % (self.lo,)
else:
- return u"%s - %s" % (self.lo, self.hi)
+ # pretty print cidr
+ return unicode(str_to_range(self.lo, self.hi))
def get_absolute_url(self):
return u'/myrpki/address/%d' % (self.pk,)