diff options
author | Michael Elkins <melkins@tislabs.com> | 2011-11-11 23:46:53 +0000 |
---|---|---|
committer | Michael Elkins <melkins@tislabs.com> | 2011-11-11 23:46:53 +0000 |
commit | 956885abb647c3c972a23e325efac3f353de7972 (patch) | |
tree | 0d0f289d696f53bd517efd2dff34747b8019ca85 /rpkid | |
parent | ba6d300828f2a35a07610ca95c1df33a8ea7cbc9 (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.py | 82 |
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 |