diff options
author | Rob Austein <sra@hactrn.net> | 2012-08-20 22:46:03 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2012-08-20 22:46:03 +0000 |
commit | 0352595e313e6d3949223fa386ade9090b6cc55f (patch) | |
tree | 4cdc6f66f878d1d515d448783789d08d281ea0ad /rpkid/rpki/rpkid_tasks.py | |
parent | 633b5b6c1c57af37eb2e4106d777a2af094b7b61 (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.py | 16 |
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) |