aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki/rpkid_tasks.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2012-08-20 22:46:03 +0000
committerRob Austein <sra@hactrn.net>2012-08-20 22:46:03 +0000
commit0352595e313e6d3949223fa386ade9090b6cc55f (patch)
tree4cdc6f66f878d1d515d448783789d08d281ea0ad /rpkid/rpki/rpkid_tasks.py
parent633b5b6c1c57af37eb2e4106d777a2af094b7b61 (diff)
Add a few more self.overdue checks to ROA and child certificate loops.
svn path=/branches/tk274/; revision=4651
Diffstat (limited to 'rpkid/rpki/rpkid_tasks.py')
-rw-r--r--rpkid/rpki/rpkid_tasks.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/rpkid/rpki/rpkid_tasks.py b/rpkid/rpki/rpkid_tasks.py
index e23fd0b0..b65a6e3d 100644
--- a/rpkid/rpki/rpkid_tasks.py
+++ b/rpkid/rpki/rpkid_tasks.py
@@ -233,10 +233,16 @@ class UpdateChildrenTask(AbstractTask):
self.iterator = iterator
self.child = child
self.child_certs = child.child_certs
+ if self.overdue:
+ self.publisher.call_pubd(lambda: self.postpone(self.do_child), self.publication_failed)
+ else:
+ self.do_child()
+
+ def do_child(self):
if self.child_certs:
- self.gctx.irdb_query_child_resources(child.self.self_handle, child.child_handle, self.got_resources, self.lose)
+ self.gctx.irdb_query_child_resources(self.child.self.self_handle, self.child.child_handle, self.got_resources, self.lose)
else:
- iterator()
+ self.iterator()
def lose(self, e):
rpki.log.traceback()
@@ -360,6 +366,12 @@ class UpdateROAsTask(AbstractTask):
self.orphans.extend(roas.itervalues())
+ if self.overdue:
+ self.postpone(self.begin_loop)
+ else:
+ self.begin_loop()
+
+ def begin_loop(self):
self.count = 0
rpki.async.iterator(self.updates, self.loop, self.done, pop_list = True)