diff options
Diffstat (limited to 'rpkid/rpki')
-rw-r--r-- | rpkid/rpki/async.py | 14 | ||||
-rw-r--r-- | rpkid/rpki/left_right.py | 14 | ||||
-rw-r--r-- | rpkid/rpki/rpki_engine.py | 26 |
3 files changed, 33 insertions, 21 deletions
diff --git a/rpkid/rpki/async.py b/rpkid/rpki/async.py index c581dbb0..1c295f76 100644 --- a/rpkid/rpki/async.py +++ b/rpkid/rpki/async.py @@ -45,6 +45,8 @@ class iterator(object): def __init__(self, iterable, item_callback, done_callback): self.item_callback = item_callback self.done_callback = done_callback + self.caller_file, self.caller_line, self.caller_function = traceback.extract_stack(limit = 2)[0][0:3] + #rpki.log.debug("Created iterator id %s file %s line %s function %s" % (id(self), self.caller_file, self.caller_line, self.caller_function)) try: self.iterator = iter(iterable) except ExitNow: @@ -54,13 +56,23 @@ class iterator(object): raise self() - def __call__(self, *ignored): + def __repr__(self): + return "<asynciterator created at %s:%d %s at 0x%x>" % (self.caller_file, self.caller_line, self.caller_function, id(self)) + + def __call__(self, *args): + if args != (): + rpki.log.warn("Arguments passed to %r: %r" % (self, args)) + for x in traceback.format_stack(): + rpki.log.warn(x.strip()) + assert args == () try: self.item_callback(self, self.iterator.next()) except StopIteration: if self.done_callback is not None: self.done_callback() + def ignore(self, ignored): + self() class timer(object): """ diff --git a/rpkid/rpki/left_right.py b/rpkid/rpki/left_right.py index c8afa71a..64852a06 100644 --- a/rpkid/rpki/left_right.py +++ b/rpkid/rpki/left_right.py @@ -253,7 +253,7 @@ class self_elt(data_elt): child_cert.reissue( ca_detail = ca_detail, resources = new_resources, - callback = iterator2, + callback = iterator2.ignore, errback = reissue_failed) return @@ -265,7 +265,7 @@ class self_elt(data_elt): repository = parent.repository() child_cert.sql_delete() - def withdraw(*ignored): + def withdraw(): repository.withdraw(child_cert.cert, child_cert.uri(ca), iterator2, withdraw_failed) def manifest_failed(e): @@ -331,7 +331,7 @@ class self_elt(data_elt): def do_crl(): ca_detail.generate_crl(do_manifest, fail2) - def do_manifest(*ignored): + def do_manifest(): ca_detail.generate_manifest(iterator2, fail2) if ca_detail is not None and now > ca_detail.latest_crl.getNextUpdate(): @@ -861,7 +861,7 @@ class route_origin_elt(data_elt): def one(): repository.publish(self.cert, self.ee_uri(ca), two, errback) - def two(*ignored): + def two(): ca_detail.generate_manifest(callback, errback) repository.publish(self.roa, self.roa_uri(ca), @@ -888,7 +888,7 @@ class route_origin_elt(data_elt): if ca_detail.state != 'active': self.ca_detail_id = None - def one(*ignored): + def one(): rpki.log.debug("Withdrawing ROA and revoking its EE cert") rpki.rpki_engine.revoked_cert_obj.revoke(cert = cert, ca_detail = ca_detail) repository.withdraw(roa, roa_uri, @@ -898,11 +898,11 @@ class route_origin_elt(data_elt): def two(): repository.withdraw(cert, ee_uri, three, errback) - def three(*ignored): + def three(): self.gctx.sql.sweep() ca_detail.generate_crl(four, errback) - def four(*ignored): + def four(): ca_detail.generate_manifest(callback, errback) if regenerate: diff --git a/rpkid/rpki/rpki_engine.py b/rpkid/rpki/rpki_engine.py index a876c4a8..6e0e96eb 100644 --- a/rpkid/rpki/rpki_engine.py +++ b/rpkid/rpki/rpki_engine.py @@ -490,10 +490,10 @@ class ca_detail_obj(rpki.sql.sql_persistent): self.ca_cert_uri = uri.rsync() self.generate_manifest_cert(ca) - def did_crl(*ignored): + def did_crl(): self.generate_manifest(callback = did_manifest, errback = errback) - def did_manifest(*ignored): + def did_manifest(): self.state = "active" self.sql_mark_dirty() if predecessor is None: @@ -504,7 +504,7 @@ class ca_detail_obj(rpki.sql.sql_persistent): rpki.async.iterator(predecessor.child_certs(), do_one_child_cert, done_child_certs) def do_one_child_cert(iterator, child_cert): - child_cert.reissue(self, iterator, errback) + child_cert.reissue(self, iterator.ignore, errback) def done_child_certs(): rpki.async.iterator(predecessor.route_origins(), do_one_route_origin, callback) @@ -528,13 +528,13 @@ class ca_detail_obj(rpki.sql.sql_persistent): def withdraw_one_roa(iterator, route_origin): route_origin.withdraw_roa(iterator) - def withdraw_manifest(*ignored): + def withdraw_manifest(): repository.withdraw(self.latest_manifest, self.manifest_uri(ca), withdraw_crl, eb) - def withdraw_crl(*ignored): + def withdraw_crl(): repository.withdraw(self.latest_crl, self.crl_uri(ca), done, eb) - def done(*ignored): + def done(): for cert in self.child_certs() + self.revoked_certs(): cert.sql_delete() self.sql_delete() @@ -590,10 +590,10 @@ class ca_detail_obj(rpki.sql.sql_persistent): self.nextUpdate += crl_interval self.generate_crl(callback = final_manifest, errback = eb, nextUpdate = self.nextUpdate) - def final_manifest(*ignored): + def final_manifest(): self.generate_manifest(callback = done, errback = eb, nextUpdate = self.nextUpdate) - def done(*ignored): + def done(): self.private_key_id = None self.manifest_private_key_id = None self.manifest_public_key = None @@ -622,7 +622,7 @@ class ca_detail_obj(rpki.sql.sql_persistent): child_cert.reissue( ca_detail = self, resources = child_resources.intersection(new_resources), - callback = iterator, + callback = iterator.ignore, errback = errback) else: iterator() @@ -718,10 +718,10 @@ class ca_detail_obj(rpki.sql.sql_persistent): child_cert.sql_store() - def published(*ignored): + def published(): self.generate_manifest(done, errback) - def done(*ignored): + def done(): callback(child_cert) ca.parent().repository().publish(child_cert.cert, child_cert.uri(ca), published, errback) @@ -845,7 +845,7 @@ class child_cert_obj(rpki.sql.sql_persistent): revoked_cert_obj.revoke(cert = self.cert, ca_detail = ca_detail) repository = ca.parent().repository() - def done(*ignored): + def done(): self.gctx.sql.sweep() self.sql_delete() callback() @@ -905,7 +905,7 @@ class child_cert_obj(rpki.sql.sql_persistent): rpki.async.iterator([x for x in child.child_certs(ca_detail = ca_detail, ski = self.ski) if x is not child_cert], do_one_cert, done) - child_cert = ca_detail.issue( + ca_detail.issue( ca = ca, child = child, subject_key = self.cert.getPublicKey(), |