diff options
Diffstat (limited to 'rpkid/rpki/left_right.py')
-rw-r--r-- | rpkid/rpki/left_right.py | 13 |
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)) |