diff options
author | Harald Musum <musum@yahoo-inc.com> | 2016-11-30 08:40:00 +0100 |
---|---|---|
committer | Harald Musum <musum@yahoo-inc.com> | 2016-11-30 08:40:00 +0100 |
commit | 87a8ae64326730bd562b76278447092b66c9cbcf (patch) | |
tree | 1e66bc72cecd79d907ec0297cc74b4e186279728 /node-admin | |
parent | 2df45242b26edb39adcb9228a28384a16ba19187 (diff) |
Handle non-existing node better
Diffstat (limited to 'node-admin')
2 files changed, 21 insertions, 8 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java index 5e4c593b868..43219ccf2e2 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java @@ -65,15 +65,18 @@ public class NodeRepositoryImpl implements NodeRepository { } @Override - public Optional<ContainerNodeSpec> getContainerNodeSpec(String hostName) throws IOException { - final GetNodesResponse.Node nodeResponse = requestExecutor.get("/nodes/v2/node/" + hostName, - port, - GetNodesResponse.Node.class); - - if (nodeResponse == null) { + public Optional<ContainerNodeSpec> getContainerNodeSpec(String hostName) { + try { + GetNodesResponse.Node nodeResponse = requestExecutor.get("/nodes/v2/node/" + hostName, + port, + GetNodesResponse.Node.class); + if (nodeResponse == null) { + return Optional.empty(); + } + return Optional.of(createContainerNodeSpec(nodeResponse)); + } catch (ConfigServerHttpRequestExecutor.NotFoundException e) { return Optional.empty(); } - return Optional.of(createContainerNodeSpec(nodeResponse)); } private static ContainerNodeSpec createContainerNodeSpec(GetNodesResponse.Node node) diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImplTest.java index 9c18edfcba5..3fa8d70bfdb 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImplTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImplTest.java @@ -24,6 +24,7 @@ import java.util.Optional; import java.util.Set; import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; @@ -100,7 +101,7 @@ public class NodeRepositoryImplTest { } @Test - public void testGetContainers() throws InterruptedException, IOException { + public void testGetContainer() throws InterruptedException, IOException { waitForJdiscContainerToServe(); NodeRepository nodeRepositoryApi = new NodeRepositoryImpl(configServerHosts, port, "dockerhost4"); String hostname = "host4.yahoo.com"; @@ -111,6 +112,15 @@ public class NodeRepositoryImplTest { } @Test + public void testGetContainerForNonExistingNode() throws InterruptedException, IOException { + waitForJdiscContainerToServe(); + NodeRepository nodeRepositoryApi = new NodeRepositoryImpl(configServerHosts, port, "dockerhost4"); + String hostname = "host-that-does-not-exist"; + Optional<ContainerNodeSpec> nodeSpec = nodeRepositoryApi.getContainerNodeSpec(hostname); + assertFalse(nodeSpec.isPresent()); + } + + @Test public void testUpdateNodeAttributes() throws InterruptedException, IOException { waitForJdiscContainerToServe(); NodeRepository nodeRepositoryApi = new NodeRepositoryImpl(configServerHosts, port, "dockerhost4"); |