summaryrefslogtreecommitdiffstats
path: root/node-repository/src/test
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2020-09-25 13:01:06 +0200
committerMartin Polden <mpolden@mpolden.no>2020-09-25 13:01:06 +0200
commit584d2f6d5d09832a27b1dce1d1e3e430e9fc46f3 (patch)
tree2fb599fb9dfaa8fcc3de3702b1560347b3c3d8ae /node-repository/src/test
parent7402fb06bc996ec63c478420c25e620034be7f9b (diff)
Avoid parsing IP addresses during deserialization
`InetAddresses#forString` is among the slowest calls during deserialization. Do it only at serialization time.
Diffstat (limited to 'node-repository/src/test')
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/node/IPTest.java21
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiTest.java2
2 files changed, 14 insertions, 9 deletions
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/node/IPTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/node/IPTest.java
index 4602a8f3560..bf83b074387 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/node/IPTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/node/IPTest.java
@@ -2,7 +2,6 @@
package com.yahoo.vespa.hosted.provision.node;
import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.ImmutableSortedSet;
import com.yahoo.config.provision.NodeFlavors;
import com.yahoo.config.provision.NodeType;
import com.yahoo.vespa.hosted.provision.LockedNodeList;
@@ -11,14 +10,15 @@ import com.yahoo.vespa.hosted.provision.provisioning.FlavorConfigBuilder;
import com.yahoo.vespa.hosted.provision.testutils.MockNameResolver;
import org.junit.Test;
-import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Optional;
import java.util.Set;
+import java.util.stream.Collectors;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -59,10 +59,14 @@ public class IPTest {
"::1",
"::10",
"::20",
- "2001:db8:0:0:0:0:0:ffff",
- "2001:db8:85a3:0:0:8a2e:370:7334",
- "2001:db8:95a3:0:0:0:0:7334"),
- new ArrayList<>(ImmutableSortedSet.copyOf(IP.NATURAL_ORDER, ipAddresses))
+ "2001:db8::ffff",
+ "2001:db8:85a3::8a2e:370:7334",
+ "2001:db8:95a3::7334"),
+ ipAddresses.stream()
+ .map(IP::parse)
+ .sorted(IP.NATURAL_ORDER)
+ .map(IP::asString)
+ .collect(Collectors.toList())
);
}
@@ -99,7 +103,6 @@ public class IPTest {
@Test
public void test_find_allocation_ipv4_only() {
var pool = testPool(false);
- assertTrue(pool instanceof IP.Ipv4Pool);
var allocation = pool.findAllocation(emptyList, resolver);
assertFalse("Found allocation", allocation.isEmpty());
assertEquals("127.0.0.1", allocation.get().primary());
@@ -173,7 +176,9 @@ public class IPTest {
.addReverseRecord("::2", "host1");
}
- return node.ipConfig().pool();
+ IP.Pool pool = node.ipConfig().pool();
+ assertNotEquals(dualStack, pool instanceof IP.Ipv4Pool);
+ return pool;
}
private static Node createNode(Set<String> ipAddresses) {
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiTest.java
index 1a354686ae4..9f6f5043ae8 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiTest.java
@@ -305,7 +305,7 @@ public class NodesV2ApiTest {
("[" + asNodeJson("host-with-ip.yahoo.com", "default", "foo") + "]").
getBytes(StandardCharsets.UTF_8),
Request.Method.POST);
- tester.assertResponse(req, 400, "{\"error-code\":\"BAD_REQUEST\",\"message\":\"Found one or more invalid addresses in [foo]: 'foo' is not an IP string literal.\"}");
+ tester.assertResponse(req, 400, "{\"error-code\":\"BAD_REQUEST\",\"message\":\"Invalid IP address 'foo': 'foo' is not an IP string literal.\"}");
// Attempt to POST tenant node with already assigned IP
tester.assertResponse(new Request("http://localhost:8080/nodes/v2/node",