aboutsummaryrefslogtreecommitdiff
path: root/rpki/rpkic.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2016-03-29 22:22:09 +0000
committerRob Austein <sra@hactrn.net>2016-03-29 22:22:09 +0000
commitfa535af8d439db2e20b34c6e80b2ee86f4255f53 (patch)
treeeb3d9b18478bbeaa81546669cef86f0878254f36 /rpki/rpkic.py
parentd6e5a0df28362130b4d30a747f9957f51f502750 (diff)
rpkic needs to do uid swapping around XML reads too.
rpki.irdb.zookeeper.etree_read(), the functions that call it, and the functions that call them, could all use a bit of refactoring. At this point pretty much ever caller is jumping through some hoop or another due to the way the code has evolved, and most of it could be simpler. svn path=/branches/tk705/; revision=6338
Diffstat (limited to 'rpki/rpkic.py')
-rw-r--r--rpki/rpkic.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/rpki/rpkic.py b/rpki/rpkic.py
index 199a685d..51a4d6d2 100644
--- a/rpki/rpkic.py
+++ b/rpki/rpkic.py
@@ -64,6 +64,16 @@ class swap_uids(object):
return False
+def read_xml_swapped_uids(filename):
+ """
+ Read an XML file with UIDs swapped.
+ """
+
+ from lxml.etree import ElementTree
+
+ with swap_uids():
+ return ElementTree(file = filename).getroot()
+
class main(Cmd):
prompt = "rpkic> "
@@ -368,7 +378,7 @@ class main(Cmd):
up-down protocol service URI.
"""
- r, child_handle = self.zoo.configure_child(args.child_xml, args.child_handle, args.valid_until)
+ r, child_handle = self.zoo.configure_child(read_xml_swapped_uids(args.child_xml), args.child_handle, args.valid_until)
with swap_uids():
r.save("%s.%s.parent-response.xml" % (self.zoo.handle, child_handle), sys.stdout)
self.zoo.synchronize_ca()
@@ -415,7 +425,7 @@ class main(Cmd):
synchronize here, run the synchronize command yourself.
"""
- r, parent_handle = self.zoo.configure_parent(args.parent_xml, args.parent_handle)
+ r, parent_handle = self.zoo.configure_parent(read_xml_swapped_uids(args.parent_xml), args.parent_handle)
with swap_uids():
r.save("%s.%s.repository-request.xml" % (self.zoo.handle, parent_handle), sys.stdout)
@@ -486,7 +496,7 @@ class main(Cmd):
message containing the repository's BPKI data and service URI.
"""
- r, client_handle = self.zoo.configure_publication_client(args.client_xml, args.sia_base, args.flat)
+ r, client_handle = self.zoo.configure_publication_client(read_xml_swapped_uids(args.client_xml), args.sia_base, args.flat)
with swap_uids():
r.save("%s.repository-response.xml" % client_handle.replace("/", "."), sys.stdout)
try:
@@ -527,7 +537,7 @@ class main(Cmd):
corresponding parent data in our local database.
"""
- self.zoo.configure_repository(args.repository_xml, args.parent_handle)
+ self.zoo.configure_repository(read_xml_swapped_uids(args.repository_xml), args.parent_handle)
self.zoo.synchronize_ca()
@@ -773,7 +783,7 @@ class main(Cmd):
Load router certificate request(s) into IRDB from XML file.
"""
- self.zoo.add_router_certificate_request(args.router_certificate_request_xml, args.valid_until)
+ self.zoo.add_router_certificate_request(read_xml_swapped_uids(args.router_certificate_request_xml), args.valid_until)
if self.autosync:
self.zoo.run_rpkid_now()