aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--myrpki.rototill/setup.py26
1 files changed, 15 insertions, 11 deletions
diff --git a/myrpki.rototill/setup.py b/myrpki.rototill/setup.py
index e3d83180..19bcc71a 100644
--- a/myrpki.rototill/setup.py
+++ b/myrpki.rototill/setup.py
@@ -191,17 +191,18 @@ class main(rpki.cli.Cmd):
PEMElement(e, "bpki_server_ta", self.bpki_servers.cer)
SubElement(e, "bpki_child_ta").text = c.findtext("bpki_ta")
- repos = [(n, r)
- for n, r in ((os.path.splitext(os.path.split(f)[-1])[0], myrpki.etree_read(f))
- for f in glob.iglob(self.entitydb("repositories", "*.xml")))
- if r.get("type") == "confirmed"]
-
- if len(repos) < 1:
- print "Couldn't find any usable repositories, not giving referral"
- elif len(repos) > 1:
- print "Too many repositories, I don't know what to do, not giving referral"
- else:
- repo_handle, repo = repos[0]
+ try:
+ repo = None
+ for f in glob.iglob(self.entitydb("repositories", "*.xml")):
+ r = myrpki.etree_read(f)
+ if r.get("type") == "confirmed":
+ if repo is not None:
+ raise RuntimeError, "Too many repositories, I don't know what to do, not giving referral"
+ repo_handle = os.path.splitext(os.path.split(f)[-1])[0]
+ repo = r
+ if repo is None:
+ raise RuntimeError, "Couldn't find any usable repositories, not giving referral"
+
if repo_handle == self.handle:
SubElement(e, "repository", type = "offer")
else:
@@ -211,6 +212,9 @@ class main(rpki.cli.Cmd):
# CMS-signed blob authorizing use of part of our space by our
# child goes here, once I've written that code.
+ except RuntimeError, err:
+ print err
+
myrpki.etree_write(e, self.entitydb("children", "%s.xml" % child_handle))