aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki
diff options
context:
space:
mode:
Diffstat (limited to 'rpkid/rpki')
-rw-r--r--rpkid/rpki/async.py14
-rw-r--r--rpkid/rpki/left_right.py14
-rw-r--r--rpkid/rpki/rpki_engine.py26
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(),