diff options
author | Rob Austein <sra@hactrn.net> | 2014-08-06 01:04:14 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2014-08-06 01:04:14 +0000 |
commit | cd8becc8460679775f3e7a5ef61046a17bcab3f2 (patch) | |
tree | 9811b8ad55827b8c34d0d47000e8605625ed14c4 /rpki/irdb/zookeeper.py | |
parent | b4a2a8ca00b9bfe79636efd8a02a24105b9f929f (diff) |
rootd with publciation protocol mostly working with modern IRDB.
svn path=/branches/tk705/; revision=5913
Diffstat (limited to 'rpki/irdb/zookeeper.py')
-rw-r--r-- | rpki/irdb/zookeeper.py | 17 |
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( |