aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2009-09-15 04:54:56 +0000
committerRob Austein <sra@hactrn.net>2009-09-15 04:54:56 +0000
commit3c02cba2d29c996c59c504e0dcd9b2dcc72064c9 (patch)
treeb2b0f1d856d18508040afd1c3393015fbe8e35b5
parentc998275aa20cdaf67e7bc528295098c442f83b02 (diff)
Start draining the publication swamp
svn path=/rpkid/rpki/left_right.py; revision=2754
-rw-r--r--rpkid/rpki/left_right.py4
-rw-r--r--rpkid/rpki/publication.py18
-rw-r--r--rpkid/rpki/rpki_engine.py4
3 files changed, 20 insertions, 6 deletions
diff --git a/rpkid/rpki/left_right.py b/rpkid/rpki/left_right.py
index 7093e40e..52a83626 100644
--- a/rpkid/rpki/left_right.py
+++ b/rpkid/rpki/left_right.py
@@ -579,7 +579,7 @@ class repository_elt(data_elt):
errback(e)
rpki.log.trace()
rpki.log.info("Publishing %r as %r" % (obj, uri))
- self.call_pubd(callback, fail, rpki.publication.obj2elt[type(obj)].make_pdu(action = "publish", uri = uri, payload = obj))
+ self.call_pubd(callback, fail, rpki.publication.publication_object_elt.make_publish(uri, obj))
def withdraw(self, obj, uri, callback, errback, allow_failure = False):
"""
@@ -593,7 +593,7 @@ class repository_elt(data_elt):
errback(e)
rpki.log.trace()
rpki.log.info("Withdrawing %r from %r" % (obj, uri))
- self.call_pubd(callback, fail, rpki.publication.obj2elt[type(obj)].make_pdu(action = "withdraw", uri = uri))
+ self.call_pubd(callback, fail, rpki.publication.publication_object_elt.make_withdraw(uri))
class parent_elt(data_elt):
"""
diff --git a/rpkid/rpki/publication.py b/rpkid/rpki/publication.py
index afeedf62..a1f54cc1 100644
--- a/rpkid/rpki/publication.py
+++ b/rpkid/rpki/publication.py
@@ -252,6 +252,20 @@ class publication_object_elt(rpki.xml_utils.base_elt, publication_namespace):
raise rpki.exceptions.BadURISyntax, filename
return filename
+ @classmethod
+ def make_publish(cls, uri, obj, tag = None):
+ """
+ Construct a publication PDU.
+ """
+ return cls.obj2elt[type(obj)].make_pdu(action = "publish", uri = uri, payload = obj, tag = tag)
+
+ @classmethod
+ def make_withdraw(cls, uri, tag = None):
+ """
+ Construct a withdrawal PDU.
+ """
+ return cls.obj2elt[type(obj)].make_pdu(action = "withdraw", uri = uri, tag = tag)
+
class certificate_elt(publication_object_elt):
"""
<certificate/> element.
@@ -284,10 +298,10 @@ class roa_elt(publication_object_elt):
element_name = "roa"
payload_type = rpki.x509.ROA
-## @var obj2elt
+## @var publication_object_elt.obj2elt
# Map of data types to publication element wrapper types
-obj2elt = dict((e.payload_type, e) for e in (certificate_elt, crl_elt, manifest_elt, roa_elt))
+publication_object_elt.obj2elt = dict((e.payload_type, e) for e in (certificate_elt, crl_elt, manifest_elt, roa_elt))
class report_error_elt(rpki.xml_utils.base_elt, publication_namespace):
"""
diff --git a/rpkid/rpki/rpki_engine.py b/rpkid/rpki/rpki_engine.py
index 9f0fff25..2bf1403c 100644
--- a/rpkid/rpki/rpki_engine.py
+++ b/rpkid/rpki/rpki_engine.py
@@ -626,9 +626,9 @@ class ca_detail_obj(rpki.sql.sql_persistent):
repository.withdraw(child_cert.cert, child_cert.uri(ca), iterator, eb, allow_failure)
def child_certs_done():
- rpki.async.iterator(self.roas(), reovke_one_roa, withdraw_manifest)
+ rpki.async.iterator(self.roas(), revoke_one_roa, withdraw_manifest)
- def reovke_one_roa(iterator, roa):
+ def revoke_one_roa(iterator, roa):
roa.revoke(iterator, eb, allow_failure = allow_failure)
def withdraw_manifest():