aboutsummaryrefslogtreecommitdiff
path: root/rpkid
diff options
context:
space:
mode:
authorMichael Elkins <melkins@tislabs.com>2011-11-11 23:46:53 +0000
committerMichael Elkins <melkins@tislabs.com>2011-11-11 23:46:53 +0000
commit956885abb647c3c972a23e325efac3f353de7972 (patch)
tree0d0f289d696f53bd517efd2dff34747b8019ca85 /rpkid
parentba6d300828f2a35a07610ca95c1df33a8ea7cbc9 (diff)
reorder models to avoid forward references. closes #149
svn path=/trunk/; revision=4089
Diffstat (limited to 'rpkid')
-rw-r--r--rpkid/rpki/gui/app/models.py82
1 files changed, 41 insertions, 41 deletions
diff --git a/rpkid/rpki/gui/app/models.py b/rpkid/rpki/gui/app/models.py
index 7ae0eaad..b78736b5 100644
--- a/rpkid/rpki/gui/app/models.py
+++ b/rpkid/rpki/gui/app/models.py
@@ -50,6 +50,23 @@ class Conf(models.Model):
def __unicode__(self):
return self.handle
+class Child(models.Model):
+ conf = models.ForeignKey(Conf, related_name='children')
+ handle = HandleField() # parent's name for child
+ valid_until = models.DateTimeField(help_text='date and time when authorization to use delegated resources ends')
+
+ def __unicode__(self):
+ return u"%s's child %s" % (self.conf, self.handle)
+
+ @models.permalink
+ def get_absolute_url(self):
+ return ('rpki.gui.app.views.child_view', [self.handle])
+
+ class Meta:
+ verbose_name_plural = "children"
+ # children of a specific configuration should be unique
+ unique_together = ('conf', 'handle')
+
class AddressRange(models.Model):
'''An address range/prefix.'''
lo = IPAddressField(blank=False)
@@ -97,29 +114,6 @@ class AddressRange(models.Model):
return False
return True
-class RoaRequest(models.Model):
- roa = models.ForeignKey('Roa', related_name='from_roa_request')
- max_length = models.IntegerField()
- prefix = models.ForeignKey('AddressRange', related_name='roa_requests')
-
- def __unicode__(self):
- return u'roa request for asn %d on %s-%d' % (self.roa.asn, self.prefix,
- self.max_length)
-
- 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_range_ipv4):
- 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(),
- self.max_length)
-
- @models.permalink
- def get_absolute_url(self):
- return ('rpki.gui.app.views.roa_request_view', [str(self.pk)])
-
class Asn(models.Model):
'''An ASN or range thereof.'''
lo = models.IntegerField(blank=False)
@@ -128,7 +122,7 @@ class Asn(models.Model):
parent = models.ForeignKey('Asn', related_name='children',
blank=True, null=True)
# child to which this resource is delegated
- allocated = models.ForeignKey('Child', related_name='asn',
+ allocated = models.ForeignKey(Child, related_name='asn',
blank=True, null=True)
class Meta:
@@ -152,23 +146,6 @@ class Asn(models.Model):
# will be a long when the value is large
return rpki.resource_set.resource_range_as(long(self.lo), long(self.hi))
-class Child(models.Model):
- conf = models.ForeignKey(Conf, related_name='children')
- handle = HandleField() # parent's name for child
- valid_until = models.DateTimeField(help_text='date and time when authorization to use delegated resources ends')
-
- def __unicode__(self):
- return u"%s's child %s" % (self.conf, self.handle)
-
- @models.permalink
- def get_absolute_url(self):
- return ('rpki.gui.app.views.child_view', [self.handle])
-
- class Meta:
- verbose_name_plural = "children"
- # children of a specific configuration should be unique
- unique_together = ('conf', 'handle')
-
class Parent(models.Model):
conf = models.ForeignKey(Conf, related_name='parents')
handle = HandleField() # my name for this parent
@@ -226,6 +203,29 @@ class Roa(models.Model):
def get_absolute_url(self):
return ('rpki.gui.app.views.roa_view', [str(self.pk)])
+class RoaRequest(models.Model):
+ roa = models.ForeignKey(Roa, related_name='from_roa_request')
+ max_length = models.IntegerField()
+ prefix = models.ForeignKey(AddressRange, related_name='roa_requests')
+
+ def __unicode__(self):
+ return u'roa request for asn %d on %s-%d' % (self.roa.asn, self.prefix,
+ self.max_length)
+
+ 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_range_ipv4):
+ 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(),
+ self.max_length)
+
+ @models.permalink
+ def get_absolute_url(self):
+ return ('rpki.gui.app.views.roa_request_view', [str(self.pk)])
+
class Ghostbuster(models.Model):
"""
Stores the information require to fill out a vCard entry to populate