summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorten Tokle <mortent@yahoo-inc.com>2017-06-08 15:13:39 +0200
committerMorten Tokle <mortent@yahoo-inc.com>2017-06-08 15:13:39 +0200
commitf1f8f4ed4cc201c5e1786b39911cf392df3e1282 (patch)
tree9a8f52a9181256ed542a8956aba76264ae9b0271
parent84aea9a4219cf4ed55eae45787bbc4a91706f7ed (diff)
Read additionalIpAddresses when adding nodes
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java14
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json2
3 files changed, 16 insertions, 3 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java
index 45d0890d8cb..f91d7d9966c 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java
@@ -230,11 +230,14 @@ public class NodesApiHandler extends LoggingRequestHandler {
Optional<String> parentHostname = optionalString(inspector.field("parentHostname"));
Set<String> ipAddresses = new HashSet<>();
inspector.field("ipAddresses").traverse((ArrayTraverser) (i, item) -> ipAddresses.add(item.asString()));
+ Set<String> additionalIpAddresses = new HashSet<>();
+ inspector.field("additionalIpAddresses").traverse((ArrayTraverser) (i, item) -> additionalIpAddresses.add(item.asString()));
return nodeRepository.createNode(
inspector.field("openStackId").asString(),
inspector.field("hostname").asString(),
ipAddresses,
+ additionalIpAddresses,
parentHostname,
nodeFlavors.getFlavorOrThrow(inspector.field("flavor").asString()),
nodeTypeFromSlime(inspector.field(nodeTypeKey)));
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java
index 9e46f11b6ab..eb1d63ada70 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java
@@ -18,6 +18,7 @@ import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
+import java.util.stream.IntStream;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -88,7 +89,7 @@ public class RestApiTest {
("[" + asNodeJson("host8.yahoo.com", "default", "127.0.0.1") + "," + // test with only 1 ip address
asNodeJson("host9.yahoo.com", "large-variant", "127.0.0.1", "::1") + "," +
asHostJson("parent2.yahoo.com", "large-variant", "127.0.0.1", "::1") + "," +
- asDockerNodeJson("host11.yahoo.com", "parent.host.yahoo.com", "127.0.0.1", "::1") + "]").
+ asDockerNodeJson("host11.yahoo.com", "parent.host.yahoo.com", 2, "127.0.0.1", "::1") + "]").
getBytes(StandardCharsets.UTF_8),
Request.Method.POST),
"{\"message\":\"Added 4 nodes to the provisioned state\"}");
@@ -454,9 +455,10 @@ public class RestApiTest {
@After
public void stopContainer() { container.close(); }
- private String asDockerNodeJson(String hostname, String parentHostname, String... ipAddress) {
+ private String asDockerNodeJson(String hostname, String parentHostname, int additionalIpCount, String... ipAddress) {
return "{\"hostname\":\"" + hostname + "\", \"parentHostname\":\"" + parentHostname + "\"," +
createIpAddresses(ipAddress) +
+ createAdditionalIpAddresses(additionalIpCount) +
"\"openStackId\":\"" + hostname + "\",\"flavor\":\"docker\"}";
}
@@ -473,6 +475,14 @@ public class RestApiTest {
", \"type\":\"host\"}";
}
+ private String createAdditionalIpAddresses(int count) {
+ return "\"additionalIpAddresses\":[" +
+ IntStream.range(10, 10+count)
+ .mapToObj(i -> "\"::" + i + "\"")
+ .collect(Collectors.joining(",")) +
+ "],";
+ }
+
private String createIpAddresses(String... ipAddress) {
return "\"ipAddresses\":[" +
Arrays.stream(ipAddress)
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json
index 5ff31ef24ca..14e3b99d83c 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node11.json
@@ -21,5 +21,5 @@
"wantToDeprovision" : false,
"history":[],
"ipAddresses":["::1", "127.0.0.1"],
- "additionalIpAddresses":[]
+ "additionalIpAddresses":["::10","::11"]
}