diff options
author | Rob Austein <sra@hactrn.net> | 2009-09-15 04:54:56 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2009-09-15 04:54:56 +0000 |
commit | 3c02cba2d29c996c59c504e0dcd9b2dcc72064c9 (patch) | |
tree | b2b0f1d856d18508040afd1c3393015fbe8e35b5 | |
parent | c998275aa20cdaf67e7bc528295098c442f83b02 (diff) |
Start draining the publication swamp
svn path=/rpkid/rpki/left_right.py; revision=2754
-rw-r--r-- | rpkid/rpki/left_right.py | 4 | ||||
-rw-r--r-- | rpkid/rpki/publication.py | 18 | ||||
-rw-r--r-- | rpkid/rpki/rpki_engine.py | 4 |
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(): |