diff options
author | Morten Tokle <mortent@yahoo-inc.com> | 2017-06-08 15:13:39 +0200 |
---|---|---|
committer | Morten Tokle <mortent@yahoo-inc.com> | 2017-06-08 15:13:39 +0200 |
commit | f1f8f4ed4cc201c5e1786b39911cf392df3e1282 (patch) | |
tree | 9a8f52a9181256ed542a8956aba76264ae9b0271 /node-repository | |
parent | 84aea9a4219cf4ed55eae45787bbc4a91706f7ed (diff) |
Read additionalIpAddresses when adding nodes
Diffstat (limited to 'node-repository')
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"] } |