From 7276391cd4e42f904473b2f4648c92b1cdc24410 Mon Sep 17 00:00:00 2001 From: gjoranv Date: Thu, 7 Sep 2023 13:32:21 +0200 Subject: Add wireguard key timestamp to WireguardPeer --- .../yahoo/vespa/hosted/provision/restapi/WireguardResponse.java | 9 +++++++-- .../vespa/hosted/provision/restapi/responses/wireguard.json | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'node-repository') diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/WireguardResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/WireguardResponse.java index 76c709da97f..db61540cd0e 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/WireguardResponse.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/WireguardResponse.java @@ -10,7 +10,9 @@ import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.node.IP; import java.net.InetAddress; +import java.time.Instant; import java.util.List; +import java.util.Optional; /** * A response containing the wireguard peer config for each configserver that has a public key. @@ -34,13 +36,16 @@ public class WireguardResponse extends SlimeJsonResponse { .toList(); if (ipAddresses.isEmpty()) return; - addConfigserver(cfgArray.addObject(), cfg.hostname(), cfg.wireguardPubKey().get(), ipAddresses); + addConfigserver(cfgArray.addObject(), cfg.hostname(), cfg.wireguardPubKey().get(), + cfg.wireguardKeyTimestamp(), ipAddresses); } } - private void addConfigserver(Cursor cfgEntry, String hostname, WireguardKey key, List ipAddresses) { + private void addConfigserver(Cursor cfgEntry, String hostname, WireguardKey key, Optional keyTimestamp, + List ipAddresses) { cfgEntry.setString("hostname", hostname); cfgEntry.setString("wireguardPubkey", key.value()); + cfgEntry.setLong("wireguardKeyTimestamp", keyTimestamp.orElse(Instant.EPOCH).toEpochMilli()); NodesResponse.ipAddressesToSlime(ipAddresses, cfgEntry.setArray("ipAddresses")); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/wireguard.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/wireguard.json index 5369229bd75..7bee06adc87 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/wireguard.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/wireguard.json @@ -3,6 +3,7 @@ { "hostname": "cfg1.yahoo.com", "wireguardPubkey": "lololololololololololololololololololololoo=", + "wireguardKeyTimestamp":456, "ipAddresses": ["::201:1"] } ] -- cgit v1.2.3