From bfcc253383fa1ee4ba9d35759e6bbfc1b2c1597b Mon Sep 17 00:00:00 2001 From: Michael Elkins Date: Sun, 4 Jul 2010 05:05:20 +0000 Subject: pretty print address ranges in cidr when possible svn path=/portal-gui/rpkigui/myrpki/misc.py; revision=3329 --- portal-gui/rpkigui/myrpki/misc.py | 15 +++++++++++++++ portal-gui/rpkigui/myrpki/models.py | 5 ++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 portal-gui/rpkigui/myrpki/misc.py 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,) -- cgit v1.2.3