summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java3
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImplTest.java28
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java1
3 files changed, 27 insertions, 5 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 6dd471f91b4..b46dda2f7a1 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
@@ -36,7 +36,6 @@ public class NodeRepositoryImpl implements NodeRepository {
@Override
public List<ContainerNodeSpec> getContainersToRun() throws IOException {
-
try {
final GetNodesResponse nodesForHost = requestExecutor.get(
"/nodes/v2/node/?parentHost=" + baseHostName + "&recursive=true",
@@ -129,7 +128,7 @@ public class NodeRepositoryImpl implements NodeRepository {
if (response.errorCode == null || response.errorCode.isEmpty()) {
return;
}
- throw new RuntimeException("Unexcpected message " + response.message + " " + response.errorCode);
+ throw new RuntimeException("Unexpected message " + response.message + " " + response.errorCode);
}
@Override
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 a4b250c6cea..fe97f1c51df 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.Set;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
/**
* Tests the NodeRepository class used for talking to the node repository. It uses a mock from the node repository
@@ -45,9 +46,9 @@ public class NodeRepositoryImplTest {
/**
* Starts NodeRepository with
- * com.yahoo.vespa.hosted.provision.testutils.MockNodeFlavor
- * com.yahoo.vespa.hosted.provision.testutils.MockNodeRepository
- * com.yahoo.vespa.hosted.provision.restapi.v2.NodesApiHandler
+ * {@link com.yahoo.vespa.hosted.provision.testutils.MockNodeFlavors}
+ * {@link com.yahoo.vespa.hosted.provision.testutils.MockNodeRepository}
+ * {@link com.yahoo.vespa.hosted.provision.restapi.v2.NodesApiHandler}
* These classes define some test data that is used in these tests.
*/
@Before
@@ -123,4 +124,25 @@ public class NodeRepositoryImplTest {
nodeRepositoryApi.updateNodeAttributes(hostname, 1L, new DockerImage("image-1"), "6.2.3\n");
}
+ @Test
+ public void testMarkAsReady() throws InterruptedException, IOException {
+ NodeRepository nodeRepositoryApi = new NodeRepositoryImpl(configServerHosts, port, "dockerhost4");
+ waitForJdiscContainerToServe();
+
+ nodeRepositoryApi.markAsReady(new HostName("host5.yahoo.com"));
+
+ try {
+ nodeRepositoryApi.markAsReady(new HostName("host1.yahoo.com"));
+ fail("Expected failure because host1 is not registered as provisioned, dirty, failed or parked");
+ } catch (RuntimeException ignored) {
+ // expected
+ }
+
+ try {
+ nodeRepositoryApi.markAsReady(new HostName("host101.yahoo.com"));
+ fail("Expected failure because host101 does not exist");
+ } catch (RuntimeException ignored) {
+ // expected
+ }
+ }
}
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 6636e9580e5..d305417debc 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
@@ -78,6 +78,7 @@ public class MockNodeRepository extends NodeRepository {
nodes.remove(6);
setReady(nodes);
fail("host5.yahoo.com");
+ deallocate("host5.yahoo.com");
ApplicationId app1 = ApplicationId.from(TenantName.from("tenant1"), ApplicationName.from("application1"), InstanceName.from("instance1"));
ClusterSpec cluster1 = ClusterSpec.from(ClusterSpec.Type.container, ClusterSpec.Id.from("id1"), Optional.empty(), Optional.of("image-123"));