aboutsummaryrefslogtreecommitdiff
path: root/rpki/irdb
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2014-08-06 01:04:14 +0000
committerRob Austein <sra@hactrn.net>2014-08-06 01:04:14 +0000
commitcd8becc8460679775f3e7a5ef61046a17bcab3f2 (patch)
tree9811b8ad55827b8c34d0d47000e8605625ed14c4 /rpki/irdb
parentb4a2a8ca00b9bfe79636efd8a02a24105b9f929f (diff)
rootd with publciation protocol mostly working with modern IRDB.
svn path=/branches/tk705/; revision=5913
Diffstat (limited to 'rpki/irdb')
-rw-r--r--rpki/irdb/zookeeper.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/rpki/irdb/zookeeper.py b/rpki/irdb/zookeeper.py
index 0effe213..c9f7d78e 100644
--- a/rpki/irdb/zookeeper.py
+++ b/rpki/irdb/zookeeper.py
@@ -1543,6 +1543,23 @@ class Zookeeper(object):
bpki_cert = client.certificate,
base_uri = client.sia_base))
+ # rootd instances are also a weird sort of client
+
+ for rootd in rpki.irdb.Rootd.objects.all():
+
+ client_handle = rootd.issuer.handle + "-root"
+ client_pdu = client_pdus.pop(client_handle, None)
+ sia_base = "rsync://%s/%s/%s/" % (self.rsync_server, self.rsync_module, client_handle)
+
+ if (client_pdu is None or
+ client_pdu.base_uri != sia_base or
+ client_pdu.bpki_cert != rootd.issuer.certificate):
+ pubd_query.append(rpki.publication_control.client_elt.make_pdu(
+ action = "create" if client_pdu is None else "set",
+ client_handle = client_handle,
+ bpki_cert = rootd.issuer.certificate,
+ base_uri = sia_base))
+
# Delete any unknown clients
pubd_query.extend(rpki.publication_control.client_elt.make_pdu(