diff options
author | Rob Austein <sra@hactrn.net> | 2016-04-23 15:03:25 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2016-04-23 15:03:25 +0000 |
commit | e1ce1ee2e85de5b45e4618bcf9006f87ed7e74d5 (patch) | |
tree | fc428c3087a8537ac151516958a5f410f75a40b7 /rpki/rpkidb/models.py | |
parent | d086bf1f554ea70dbb34cf167b103d273c8b22ca (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.py | 13 |
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): |