summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2023-02-16 14:43:23 +0100
committergjoranv <gv@verizonmedia.com>2023-02-16 14:45:21 +0100
commitfeb485765ff3831eb7b9a84c9ca61973453084be (patch)
tree8665f950948f2aea4279cf278a1e5ab620c57d03 /node-admin
parenta1421401500738b1e846c0b1b272c3d496b80669 (diff)
Don't fail if a configserver lacks wg pubkey.
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java2
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/GetWireguardResponse.java6
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/wireguard/ConfigserverPeer.java3
3 files changed, 9 insertions, 2 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java
index 48a42d3c81e..e092cc15145 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java
@@ -343,7 +343,7 @@ public class RealNodeRepository implements NodeRepository {
private static ConfigserverPeer createConfigserverPeer(GetWireguardResponse.Configserver configServer) {
return new ConfigserverPeer(HostName.of(configServer.hostname),
configServer.ipAddresses.stream().map(VersionedIpAddress::from).toList(),
- WireguardKey.from(configServer.wireguardPubkey));
+ configServer.wireguardKey());
}
}
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/GetWireguardResponse.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/GetWireguardResponse.java
index a71b2a74b31..9f30f8e0fb5 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/GetWireguardResponse.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/GetWireguardResponse.java
@@ -4,8 +4,10 @@ import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.yahoo.config.provision.WireguardKey;
import java.util.List;
+import java.util.Optional;
/**
* A response from the /nodes/v2/wireguard api.
@@ -43,6 +45,10 @@ public class GetWireguardResponse {
this.ipAddresses = ipAddresses;
this.wireguardPubkey = wireguardPubkey;
}
+
+ public Optional<WireguardKey> wireguardKey() {
+ return (wireguardPubkey == null || wireguardPubkey.isEmpty()) ? Optional.empty() : Optional.of(new WireguardKey(wireguardPubkey));
+ }
}
}
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/wireguard/ConfigserverPeer.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/wireguard/ConfigserverPeer.java
index 5aa6c52708e..63ddc2f3dd2 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/wireguard/ConfigserverPeer.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/wireguard/ConfigserverPeer.java
@@ -5,13 +5,14 @@ import com.yahoo.config.provision.WireguardKey;
import com.yahoo.vespa.hosted.node.admin.task.util.network.VersionedIpAddress;
import java.util.List;
+import java.util.Optional;
/**
* @author gjoranv
*/
public record ConfigserverPeer(HostName hostname,
List<VersionedIpAddress> ipAddresses,
- WireguardKey publicKey) {
+ Optional<WireguardKey> publicKey) {
public ConfigserverPeer {
if (ipAddresses.isEmpty()) throw new IllegalArgumentException("No IP addresses for configserver " + hostname.value());