aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2023-02-18 15:39:59 +0100
committergjoranv <gv@verizonmedia.com>2023-02-18 15:39:59 +0100
commitcd78b3fa9684fd333edf07ea80c539bb82efff3f (patch)
treea6a514ae3d750bcd693a1b1b316465b77ff6ad61
parentc9e4cc5668b7c844ce691db75b3b84808529ad3f (diff)
Filter exclave nodes without wg key from node repo client.
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java1
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java9
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java1
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node3.json3
4 files changed, 6 insertions, 8 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 1befb543201..a115e40a290 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
@@ -135,6 +135,7 @@ public class RealNodeRepository implements NodeRepository {
final GetNodesResponse response = configServerApi.get(path, GetNodesResponse.class);
return response.nodes.stream()
+ .filter(node -> node.wireguardPubkey != null && ! node.wireguardPubkey.isEmpty())
.map(RealNodeRepository::createTenantPeer)
.sorted()
.toList();
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java
index 47d37fe37fe..c7eb26cb6a7 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java
@@ -204,6 +204,7 @@ public class RealNodeRepositoryTest {
//// Configservers ////
List<WireguardPeer> cfgPeers = nodeRepositoryApi.getConfigserverPeers();
+
// cfg2 does not have a wg public key, so should not be included
assertEquals(1, cfgPeers.size());
@@ -214,15 +215,13 @@ public class RealNodeRepositoryTest {
//// Exclave nodes ////
List<WireguardPeer> exclavePeers = nodeRepositoryApi.getExclavePeers();
- assertEquals(2, exclavePeers.size());
+
+ // host3 does not have a wg public key, so should not be included
+ assertEquals(1, exclavePeers.size());
assertWireguardPeer(exclavePeers.get(0), "dockerhost2.yahoo.com",
"::101:1", "127.0.101.1",
"000011112222333344445555666677778888999900c=");
-
- assertWireguardPeer(exclavePeers.get(1), "host3.yahoo.com",
- "::3:1", "127.0.3.1",
- "333344445555666677778888999900001111222211c=");
}
private void assertWireguardPeer(WireguardPeer peer, String hostname, String ipv6, String ipv4, String publicKey) {
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
index 382f8520c26..66d1568262b 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
@@ -110,7 +110,6 @@ public class MockNodeRepository extends NodeRepository {
.cloudAccount(defaultCloudAccount).build());
// Emulate node in tenant account
nodes.add(Node.create("node3", ipConfig(3), "host3.yahoo.com", resources(0.5, 48, 500, 1, fast, local), NodeType.tenant)
- .wireguardPubKey(WireguardKey.from("333344445555666677778888999900001111222211c="))
.cloudAccount(tenantAccount).build());
Node node4 = Node.create("node4", ipConfig(4), "host4.yahoo.com", resources(1, 4, 100, 1, fast, local), NodeType.tenant)
.parentHostname("dockerhost1.yahoo.com")
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node3.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node3.json
index aa45de1f3dd..1c560c2f95b 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node3.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node3.json
@@ -50,6 +50,5 @@
"::3:1"
],
"additionalIpAddresses": [],
- "cloudAccount": "777888999000",
- "wireguardPubkey":"333344445555666677778888999900001111222211c="
+ "cloudAccount": "777888999000"
}