diff options
Diffstat (limited to 'rpkid/rpki/left_right.py')
-rw-r--r-- | rpkid/rpki/left_right.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/rpkid/rpki/left_right.py b/rpkid/rpki/left_right.py index 17f92ddd..1e8ac1e0 100644 --- a/rpkid/rpki/left_right.py +++ b/rpkid/rpki/left_right.py @@ -947,12 +947,29 @@ class route_origin_elt(data_elt): self.sql_store() repository = parent.repository() - repository.publish(self.roa, self.roa_uri(ca)) repository.publish(self.cert, self.ee_uri(ca)) + ca_detail.generate_manifest() + + def withdraw_roa(self): + """Withdraw ROA associated with this route_origin.""" + ca_detail = self.ca_detail() + ca = ca_detail.ca() + repository = ca.parent().repository() + repository.publish(self.roa, self.roa_uri(ca)) + repository.publish(self.cert, self.ee_uri(ca)) ca_detail.generate_manifest() + def reissue_roa(self): + """Reissue ROA associated with this route_origin.""" + rpki.log.debug("route_origin.ca_detail %s" % repr(self.ca_detail())) + self.withdraw_roa() + rpki.log.debug("route_origin.ca_detail %s" % repr(self.ca_detail())) + if self.ca_detail().state != 'active': + self.ca_detail_id = None + self.generate_roa() + def roa_uri(self, ca, key = None): """Return the publication URI for this route_origin's ROA.""" return ca.sia_uri + (key or self.cert).gSKI() + ".roa" |