diff options
author | Rob Austein <sra@hactrn.net> | 2016-04-23 15:03:28 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2016-04-23 15:03:28 +0000 |
commit | 9fbe58912e66c98ca3ad8f20abfae27b29c977d5 (patch) | |
tree | 23ff55d63217ca803940fde57c3e09ef57c1591f /rpki/rpkidb | |
parent | e1ce1ee2e85de5b45e4618bcf9006f87ed7e74d5 (diff) |
Parent property methods to handle XML attributes which are really for
the companion Root object.
svn path=/branches/tk705/; revision=6374
Diffstat (limited to 'rpki/rpkidb')
-rw-r--r-- | rpki/rpkidb/models.py | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/rpki/rpkidb/models.py b/rpki/rpkidb/models.py index 164104b3..d21d7e2e 100644 --- a/rpki/rpkidb/models.py +++ b/rpki/rpkidb/models.py @@ -574,7 +574,8 @@ class Parent(Turtle): xml_template = XMLTemplate( name = "parent", handles = (BSC, Repository), - attributes = ("peer_contact_uri", "sia_base", "sender_name", "recipient_name"), + attributes = ("peer_contact_uri", "sia_base", "sender_name", "recipient_name", + "root_asn_resources", "root_ipv4_resources", "root_ipv6_resources"), elements = ("bpki_cert", "bpki_glue"), readonly = ("rpki_root_cert",)) @@ -598,6 +599,54 @@ class Parent(Turtle): else: return ca_detail.latest_ca_cert + @property + def root_asn_resources(self): + try: + return self.root.asn_resources + except Root.DoesNotExist: + return None + + @root_asn_resources.setter + def root_asn_resources(self, value): + try: + self.root.asn_resources = value + self.root.save() + except Root.DoesNotExist: + if value: + Root.objects.create(parent = self, asn_resources = value) + + @property + def root_ipv4_resources(self): + try: + return self.root.ipv4_resources + except Root.DoesNotExist: + return None + + @root_ipv4_resources.setter + def root_ipv4_resources(self, value): + try: + self.root.ipv4_resources = value + self.root.save() + except Root.DoesNotExist: + if value: + Root.objects.create(parent = self, ipv4_resources = value) + + @property + def root_ipv6_resources(self): + try: + return self.root.ipv6_resources + except Root.DoesNotExist: + return None + + @root_ipv6_resources.setter + def root_ipv6_resources(self, value): + try: + self.root.ipv6_resources = value + self.root.save() + except Root.DoesNotExist: + if value: + Root.objects.create(parent = self, ipv6_resources = value) + @tornado.gen.coroutine def xml_pre_delete_hook(self, rpkid): trace_call_chain() |