aboutsummaryrefslogtreecommitdiff
path: root/rpki/rpkidb/models.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2016-04-23 15:03:25 +0000
committerRob Austein <sra@hactrn.net>2016-04-23 15:03:25 +0000
commite1ce1ee2e85de5b45e4618bcf9006f87ed7e74d5 (patch)
treefc428c3087a8537ac151516958a5f410f75a40b7 /rpki/rpkidb/models.py
parentd086bf1f554ea70dbb34cf167b103d273c8b22ca (diff)
Start fleshing out Parent actions that require poking at companion Root object.
svn path=/branches/tk705/; revision=6373
Diffstat (limited to 'rpki/rpkidb/models.py')
-rw-r--r--rpki/rpkidb/models.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/rpki/rpkidb/models.py b/rpki/rpkidb/models.py
index c5adbacf..164104b3 100644
--- a/rpki/rpkidb/models.py
+++ b/rpki/rpkidb/models.py
@@ -575,7 +575,8 @@ class Parent(Turtle):
name = "parent",
handles = (BSC, Repository),
attributes = ("peer_contact_uri", "sia_base", "sender_name", "recipient_name"),
- elements = ("bpki_cert", "bpki_glue"))
+ elements = ("bpki_cert", "bpki_glue"),
+ readonly = ("rpki_root_cert",))
def __repr__(self):
@@ -588,6 +589,14 @@ class Parent(Turtle):
except:
return "<Parent: Parent object>"
+ @property
+ def rpki_root_cert(self):
+ try:
+ ca_detail = self.root.cas.ca_details.get(state = "active")
+ except (Root.DoesNotExist, CA.DoesNotExist, CADetail.DoesNotExist):
+ return None
+ else:
+ return ca_detail.latest_ca_cert
@tornado.gen.coroutine
def xml_pre_delete_hook(self, rpkid):
@@ -791,7 +800,7 @@ class Root(Turtle):
asn_resources = models.TextField()
ipv4_resources = models.TextField()
ipv6_resources = models.TextField()
- worker = models.OneToOneField(Parent, related_name = "rooter")
+ parent = models.OneToOneField(Parent)
class CA(models.Model):