aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki/left_right.py
diff options
context:
space:
mode:
Diffstat (limited to 'rpkid/rpki/left_right.py')
-rw-r--r--rpkid/rpki/left_right.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/rpkid/rpki/left_right.py b/rpkid/rpki/left_right.py
index e4634bb9..d3ae3598 100644
--- a/rpkid/rpki/left_right.py
+++ b/rpkid/rpki/left_right.py
@@ -504,6 +504,7 @@ class self_elt(data_elt):
orphans.append(roa)
publisher = rpki.rpki_engine.publication_queue()
+ ca_details = set()
for roa_request in roa_requests:
try:
@@ -514,7 +515,8 @@ class self_elt(data_elt):
rpki.log.debug("Couldn't find existing ROA matching %r, created %r" % (k, roa))
else:
rpki.log.debug("Found existing ROA %r matching %r" % (roa, k))
- roa.update(publisher = publisher)
+ roa.update(publisher = publisher, fast = True)
+ ca_details.add(roa.ca_detail())
except (SystemExit, rpki.async.ExitNow):
raise
except Exception, e:
@@ -525,13 +527,20 @@ class self_elt(data_elt):
orphans.extend(roas.itervalues())
for roa in orphans:
try:
- roa.revoke(publisher = publisher)
+ ca_details.add(roa.ca_detail())
+ roa.revoke(publisher = publisher, fast = True)
except (SystemExit, rpki.async.ExitNow):
raise
except Exception, e:
rpki.log.traceback()
rpki.log.warn("Could not revoke ROA %r: %s" % (roa, e))
+ for ca_detail in ca_details:
+ ca_detail.generate_crl(publisher = publisher)
+ ca_detail.generate_manifest(publisher = publisher)
+
+ self.gctx.sql.sweep()
+
def publication_failed(e):
rpki.log.traceback()
rpki.log.warn("Couldn't publish for %s, skipping: %s" % (self.self_handle, e))