diff options
-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() |