aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki/gui/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'rpkid/rpki/gui/models.py')
-rw-r--r--rpkid/rpki/gui/models.py22
1 files changed, 11 insertions, 11 deletions
diff --git a/rpkid/rpki/gui/models.py b/rpkid/rpki/gui/models.py
index 30879e44..0ea0924b 100644
--- a/rpkid/rpki/gui/models.py
+++ b/rpkid/rpki/gui/models.py
@@ -18,12 +18,10 @@ Common classes for reuse in apps.
__version__ = '$Id$'
-import struct
-
from django.db import models
import rpki.resource_set
-import rpki.ipaddrs
+import rpki.POW
from south.modelsinspector import add_introspection_rules
@@ -36,17 +34,16 @@ class IPv6AddressField(models.Field):
return 'binary(16)'
def to_python(self, value):
- if isinstance(value, rpki.ipaddrs.v6addr):
+ if isinstance(value, rpki.POW.IPAddress):
return value
- x = struct.unpack('!QQ', value)
- return rpki.ipaddrs.v6addr((x[0] << 64) | x[1])
+ return rpki.POW.IPAddress.fromBytes(value)
def get_db_prep_value(self, value, connection, prepared):
- return struct.pack('!QQ', (long(value) >> 64) & 0xFFFFFFFFFFFFFFFFL, long(value) & 0xFFFFFFFFFFFFFFFFL)
+ return value.toBytes()
class IPv4AddressField(models.Field):
- "Wrapper around rpki.ipaddrs.v4addr."
+ "Wrapper around rpki.POW.IPAddress."
__metaclass__ = models.SubfieldBase
@@ -54,9 +51,9 @@ class IPv4AddressField(models.Field):
return 'int UNSIGNED'
def to_python(self, value):
- if isinstance(value, rpki.ipaddrs.v4addr):
+ if isinstance(value, rpki.POW.IPAddress):
return value
- return rpki.ipaddrs.v4addr(value)
+ return rpki.POW.IPAddress(value, version=4)
def get_db_prep_value(self, value, connection, prepared):
return long(value)
@@ -97,10 +94,11 @@ class Prefix(models.Model):
class Meta:
abstract = True
-
+
# default sort order reflects what "sh ip bgp" outputs
ordering = ('prefix_min',)
+
class PrefixV4(Prefix):
"IPv4 Prefix."
@@ -112,6 +110,7 @@ class PrefixV4(Prefix):
class Meta(Prefix.Meta):
abstract = True
+
class PrefixV6(Prefix):
"IPv6 Prefix."
@@ -123,6 +122,7 @@ class PrefixV6(Prefix):
class Meta(Prefix.Meta):
abstract = True
+
class ASN(models.Model):
"""Represents a range of ASNs.