diff options
author | Rob Austein <sra@hactrn.net> | 2016-04-23 15:03:32 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2016-04-23 15:03:32 +0000 |
commit | f81321b26b8112dc971288ec116aa64178dd3259 (patch) | |
tree | 8ce05d259a2ffce07fb6c585287df7291668e2b4 /rpki/irdb/models.py | |
parent | 9fbe58912e66c98ca3ad8f20abfae27b29c977d5 (diff) |
Initial version of rpki.irdb.models.Root. May end up folding this
into an expanded rpki.irdb.models.Parent, as the two are more alike
than I expected them to be, but archive this version first.
svn path=/branches/tk705/; revision=6375
Diffstat (limited to 'rpki/irdb/models.py')
-rw-r--r-- | rpki/irdb/models.py | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/rpki/irdb/models.py b/rpki/irdb/models.py index a663c36f..dc3723d8 100644 --- a/rpki/irdb/models.py +++ b/rpki/irdb/models.py @@ -457,6 +457,22 @@ class Parent(CrossCertification, Turtle): class Meta: unique_together = ("issuer", "handle") +class Root(CrossCertification, Turtle): + # + # This is sort of a cross between a Rootd and a Parent with extra + # fields for the root resources. As with Parent, the private key + # comes from a BSC rather than from a server EE cert as with + # Rootd, so this looks looks to us like a cross certification (of + # ourself). We may want to revisit this. + # + issuer = django.db.models.OneToOneField(ResourceHolderCA, related_name = "root") + asn_resources = django.db.models.TextField() + ipv4_resources = django.db.models.TextField() + ipv6_resources = django.db.models.TextField() + + class Meta: + unique_together = ("issuer", "handle") + class ROARequest(django.db.models.Model): issuer = django.db.models.ForeignKey(ResourceHolderCA, related_name = "roa_requests") asn = django.db.models.BigIntegerField() @@ -485,9 +501,11 @@ class ROARequestPrefix(django.db.models.Model): def as_roa_prefix(self): if self.version == 'IPv4': - return rpki.resource_set.roa_prefix_ipv4(rpki.POW.IPAddress(self.prefix), self.prefixlen, self.max_prefixlen) + return rpki.resource_set.roa_prefix_ipv4(rpki.POW.IPAddress(self.prefix), + self.prefixlen, self.max_prefixlen) else: - return rpki.resource_set.roa_prefix_ipv6(rpki.POW.IPAddress(self.prefix), self.prefixlen, self.max_prefixlen) + return rpki.resource_set.roa_prefix_ipv6(rpki.POW.IPAddress(self.prefix), + self.prefixlen, self.max_prefixlen) def as_resource_range(self): return self.as_roa_prefix().to_resource_range() |