summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahoo-inc.com>2016-09-19 09:59:23 +0200
committerHarald Musum <musum@yahoo-inc.com>2016-09-19 09:59:23 +0200
commit2af66af8a27556e65dac94360be6111a8fe964b9 (patch)
tree7581ea7e2d423f3e745b3d37801a0721acdfeffa
parent371cfd624c995ca8bb6e3b8a2983e79dd4b49b72 (diff)
Use Node.State from node repo instead of duplicating value in our own class
-rw-r--r--node-admin/pom.xml1
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java6
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java6
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java4
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java15
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java5
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeState.java7
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerFailTest.java4
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java8
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeRepoMock.java6
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeStateTest.java14
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/ResumeTest.java4
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImplTest.java4
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java10
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java33
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImplTest.java3
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java8
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v1/NodesApiHandler.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java2
19 files changed, 63 insertions, 79 deletions
diff --git a/node-admin/pom.xml b/node-admin/pom.xml
index a655a63acaf..55163b79e66 100644
--- a/node-admin/pom.xml
+++ b/node-admin/pom.xml
@@ -27,7 +27,6 @@
<groupId>com.yahoo.vespa</groupId>
<artifactId>node-repository</artifactId>
<version>${project.version}</version>
- <scope>test</scope>
</dependency>
<dependency>
<groupId>com.yahoo.vespa</groupId>
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java
index 7f7514a44fd..5131086ecd0 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java
@@ -4,7 +4,7 @@ package com.yahoo.vespa.hosted.node.admin;
import com.yahoo.vespa.applicationmodel.HostName;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import com.yahoo.vespa.hosted.dockerapi.DockerImage;
-import com.yahoo.vespa.hosted.node.admin.noderepository.NodeState;
+import com.yahoo.vespa.hosted.provision.Node;
import java.util.Objects;
import java.util.Optional;
@@ -16,7 +16,7 @@ public class ContainerNodeSpec {
public final HostName hostname;
public final Optional<DockerImage> wantedDockerImage;
public final ContainerName containerName;
- public final NodeState nodeState;
+ public final Node.State nodeState;
public final Optional<Long> wantedRestartGeneration;
public final Optional<Long> currentRestartGeneration;
public final Optional<Double> minCpuCores;
@@ -27,7 +27,7 @@ public class ContainerNodeSpec {
final HostName hostname,
final Optional<DockerImage> wantedDockerImage,
final ContainerName containerName,
- final NodeState nodeState,
+ final Node.State nodeState,
final Optional<Long> wantedRestartGeneration,
final Optional<Long> currentRestartGeneration,
final Optional<Double> minCpuCores,
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java
index 29a2174acfe..7502e84f2ec 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/DockerOperationsImpl.java
@@ -12,12 +12,12 @@ import com.yahoo.vespa.hosted.dockerapi.DockerImage;
import com.yahoo.vespa.hosted.dockerapi.DockerImpl;
import com.yahoo.vespa.hosted.dockerapi.ProcessResult;
import com.yahoo.vespa.hosted.node.admin.ContainerNodeSpec;
-import com.yahoo.vespa.hosted.node.admin.noderepository.NodeState;
import com.yahoo.vespa.hosted.node.admin.orchestrator.Orchestrator;
import com.yahoo.vespa.hosted.node.admin.orchestrator.OrchestratorException;
import com.yahoo.vespa.hosted.node.admin.util.Environment;
import com.yahoo.vespa.hosted.node.admin.util.PrefixLogger;
import com.yahoo.vespa.hosted.node.maintenance.Maintainer;
+import com.yahoo.vespa.hosted.provision.Node;
import java.io.InputStreamReader;
import java.net.Inet6Address;
@@ -138,7 +138,7 @@ public class DockerOperationsImpl implements DockerOperations {
}
private Optional<String> shouldRemoveContainer(ContainerNodeSpec nodeSpec, Optional<Container> existingContainer) {
- if (nodeSpec.nodeState != NodeState.ACTIVE) {
+ if (nodeSpec.nodeState != Node.State.active) {
return Optional.of("Node no longer active");
}
if (!nodeSpec.wantedDockerImage.get().equals(existingContainer.get().image)) {
@@ -318,7 +318,7 @@ public class DockerOperationsImpl implements DockerOperations {
if (existingContainer.isRunning) {
// If we're stopping the node only to upgrade or restart the node or similar, we need to suspend
// the services.
- if (nodeSpec.nodeState == NodeState.ACTIVE) {
+ if (nodeSpec.nodeState == Node.State.active) {
// TODO: Also skip orchestration if we're downgrading in test/staging
// How to implement:
// - test/staging: We need to figure out whether we're in test/staging, by asking Chef!? Or,
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java
index 54009216286..21b55d4436c 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java
@@ -5,9 +5,9 @@ import com.yahoo.component.AbstractComponent;
import com.yahoo.vespa.applicationmodel.HostName;
import com.yahoo.vespa.hosted.node.admin.ContainerNodeSpec;
import com.yahoo.vespa.hosted.node.admin.noderepository.NodeRepository;
-import com.yahoo.vespa.hosted.node.admin.noderepository.NodeState;
import com.yahoo.vespa.hosted.node.admin.orchestrator.Orchestrator;
import com.yahoo.vespa.hosted.node.admin.util.PrefixLogger;
+import com.yahoo.vespa.hosted.provision.Node;
import java.io.IOException;
import java.util.LinkedHashMap;
@@ -143,7 +143,7 @@ public class NodeAdminStateUpdater extends AbstractComponent {
private List<String> getNodesInActiveState() throws IOException {
return nodeRepository.getContainersToRun()
.stream()
- .filter(nodespec -> nodespec.nodeState == NodeState.ACTIVE)
+ .filter(nodespec -> nodespec.nodeState == Node.State.active)
.map(nodespec -> nodespec.hostname)
.map(HostName::toString)
.collect(Collectors.toList());
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
index 46dc0714e18..d55e8e0b4aa 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
@@ -297,13 +297,13 @@ public class NodeAgentImpl implements NodeAgent {
}
switch (nodeSpec.nodeState) {
- case READY:
+ case ready:
removeContainerIfNeededUpdateContainerState(nodeSpec);
break;
- case RESERVED:
+ case reserved:
removeContainerIfNeededUpdateContainerState(nodeSpec);
break;
- case ACTIVE:
+ case active:
maintenanceScheduler.removeOldFilesFromNode(nodeSpec.containerName);
scheduleDownLoadIfNeeded(nodeSpec);
if (imageBeingDownloaded != null) {
@@ -328,19 +328,20 @@ public class NodeAgentImpl implements NodeAgent {
logger.info("Call resume against Orchestrator");
orchestrator.resume(nodeSpec.hostname);
break;
- case INACTIVE:
+ case inactive:
maintenanceScheduler.removeOldFilesFromNode(nodeSpec.containerName);
removeContainerIfNeededUpdateContainerState(nodeSpec);
break;
- case PROVISIONED:
- case DIRTY:
+ case provisioned:
+ case dirty:
maintenanceScheduler.removeOldFilesFromNode(nodeSpec.containerName);
removeContainerIfNeededUpdateContainerState(nodeSpec);
logger.info("State is " + nodeSpec.nodeState + ", will delete application storage and mark node as ready");
maintenanceScheduler.deleteContainerStorage(nodeSpec.containerName);
updateNodeRepoAndMarkNodeAsReady(nodeSpec);
break;
- case FAILED:
+ case parked:
+ case failed:
removeContainerIfNeededUpdateContainerState(nodeSpec);
break;
default:
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 c86aff44d19..f3368507107 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
@@ -12,6 +12,7 @@ import com.yahoo.vespa.hosted.node.admin.noderepository.bindings.UpdateNodeAttri
import com.yahoo.vespa.hosted.node.admin.noderepository.bindings.UpdateNodeAttributesResponse;
import com.yahoo.vespa.hosted.node.admin.util.ConfigServerHttpRequestExecutor;
import com.yahoo.vespa.hosted.node.admin.util.PrefixLogger;
+import com.yahoo.vespa.hosted.provision.Node;
import java.io.IOException;
import java.util.ArrayList;
@@ -84,8 +85,8 @@ public class NodeRepositoryImpl implements NodeRepository {
private static ContainerNodeSpec createContainerNodeSpec(GetNodesResponse.Node node)
throws IllegalArgumentException, NullPointerException {
Objects.requireNonNull(node.nodeState, "Unknown node state");
- NodeState nodeState = NodeState.valueOf(node.nodeState.toUpperCase());
- if (nodeState == NodeState.ACTIVE) {
+ Node.State nodeState = Node.State.valueOf(node.nodeState);
+ if (nodeState == Node.State.active) {
Objects.requireNonNull(node.wantedDockerImage, "Unknown docker image for active node");
Objects.requireNonNull(node.wantedRestartGeneration, "Unknown wantedRestartGeneration for active node");
Objects.requireNonNull(node.currentRestartGeneration, "Unknown currentRestartGeneration for active node");
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeState.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeState.java
deleted file mode 100644
index ca2a0bb9955..00000000000
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeState.java
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.hosted.node.admin.noderepository;
-
-// TODO: Unite with com.yahoo.vespa.hosted.provision.Node.State
-public enum NodeState {
- PROVISIONED, READY, RESERVED, ACTIVE, INACTIVE, DIRTY, FAILED
-}
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerFailTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerFailTest.java
index ccb39024307..7d0fd7453dd 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerFailTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerFailTest.java
@@ -12,8 +12,8 @@ import com.yahoo.vespa.hosted.node.admin.nodeadmin.NodeAdminImpl;
import com.yahoo.vespa.hosted.node.admin.nodeadmin.NodeAdminStateUpdater;
import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgent;
import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentImpl;
-import com.yahoo.vespa.hosted.node.admin.noderepository.NodeState;
import com.yahoo.vespa.hosted.node.admin.util.Environment;
+import com.yahoo.vespa.hosted.provision.Node;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -57,7 +57,7 @@ public class DockerFailTest {
new HostName("hostName"),
Optional.of(new DockerImage("dockerImage")),
new ContainerName("container"),
- NodeState.ACTIVE,
+ Node.State.active,
Optional.of(1L),
Optional.of(1L),
Optional.of(1d),
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java
index f67e21bbcd3..69a0a94db0b 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java
@@ -12,8 +12,8 @@ import com.yahoo.vespa.hosted.node.admin.nodeadmin.NodeAdminStateUpdater;
import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgent;
import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentImpl;
import com.yahoo.vespa.hosted.node.admin.docker.DockerOperationsImpl;
-import com.yahoo.vespa.hosted.node.admin.noderepository.NodeState;
import com.yahoo.vespa.hosted.node.admin.util.Environment;
+import com.yahoo.vespa.hosted.provision.Node;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -73,7 +73,7 @@ public class MultiDockerTest {
containerNodeSpec2.hostname,
containerNodeSpec2.wantedDockerImage,
containerNodeSpec2.containerName,
- NodeState.DIRTY,
+ Node.State.dirty,
containerNodeSpec2.wantedRestartGeneration,
containerNodeSpec2.currentRestartGeneration,
containerNodeSpec2.minCpuCores,
@@ -83,7 +83,7 @@ public class MultiDockerTest {
// Wait until it is marked ready
Optional<ContainerNodeSpec> tempContainerNodeSpec;
while ((tempContainerNodeSpec = nodeRepositoryMock.getContainerNodeSpec(containerNodeSpec2.hostname)).isPresent()
- && tempContainerNodeSpec.get().nodeState != NodeState.READY) {
+ && tempContainerNodeSpec.get().nodeState != Node.State.ready) {
Thread.sleep(10);
}
@@ -121,7 +121,7 @@ public class MultiDockerTest {
hostName,
dockerImage,
containerName,
- NodeState.ACTIVE,
+ Node.State.active,
Optional.of(1L),
Optional.of(1L),
Optional.of(1d),
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeRepoMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeRepoMock.java
index ead4167333e..84eaabb6385 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeRepoMock.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeRepoMock.java
@@ -7,7 +7,7 @@ import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import com.yahoo.vespa.hosted.dockerapi.DockerImage;
import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAttributes;
import com.yahoo.vespa.hosted.node.admin.noderepository.NodeRepository;
-import com.yahoo.vespa.hosted.node.admin.noderepository.NodeState;
+import com.yahoo.vespa.hosted.provision.Node;
import java.io.IOException;
import java.util.ArrayList;
@@ -60,7 +60,7 @@ public class NodeRepoMock implements NodeRepository {
synchronized (monitor) {
if (cns.isPresent()) {
updateContainerNodeSpec(cns.get().hostname,
- cns.get().wantedDockerImage, cns.get().containerName, NodeState.READY,
+ cns.get().wantedDockerImage, cns.get().containerName, Node.State.ready,
cns.get().wantedRestartGeneration, cns.get().currentRestartGeneration,
cns.get().minCpuCores, cns.get().minMainMemoryAvailableGb, cns.get().minDiskAvailableGb);
}
@@ -71,7 +71,7 @@ public class NodeRepoMock implements NodeRepository {
public void updateContainerNodeSpec(HostName hostName,
Optional<DockerImage> wantedDockerImage,
ContainerName containerName,
- NodeState nodeState,
+ Node.State nodeState,
Optional<Long> wantedRestartGeneration,
Optional<Long> currentRestartGeneration,
Optional<Double> minCpuCores,
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeStateTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeStateTest.java
index 6391d9e3eec..d4ab7ab4e9d 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeStateTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/NodeStateTest.java
@@ -11,8 +11,8 @@ import com.yahoo.vespa.hosted.node.admin.nodeadmin.NodeAdminStateUpdater;
import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgent;
import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentImpl;
import com.yahoo.vespa.hosted.node.admin.docker.DockerOperationsImpl;
-import com.yahoo.vespa.hosted.node.admin.noderepository.NodeState;
import com.yahoo.vespa.hosted.node.admin.util.Environment;
+import com.yahoo.vespa.hosted.provision.Node;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -64,7 +64,7 @@ public class NodeStateTest {
new HostName("host1"),
Optional.of(new DockerImage("dockerImage")),
new ContainerName("container"),
- NodeState.ACTIVE,
+ Node.State.active,
Optional.of(1L),
Optional.of(1L),
Optional.of(1d),
@@ -98,7 +98,7 @@ public class NodeStateTest {
initialContainerNodeSpec.hostname,
initialContainerNodeSpec.wantedDockerImage,
initialContainerNodeSpec.containerName,
- NodeState.DIRTY,
+ Node.State.dirty,
initialContainerNodeSpec.wantedRestartGeneration,
initialContainerNodeSpec.currentRestartGeneration,
initialContainerNodeSpec.minCpuCores,
@@ -108,11 +108,11 @@ public class NodeStateTest {
// Wait until it is marked ready
Optional<ContainerNodeSpec> containerNodeSpec;
while ((containerNodeSpec = nodeRepositoryMock.getContainerNodeSpec(initialContainerNodeSpec.hostname)).isPresent()
- && containerNodeSpec.get().nodeState != NodeState.READY) {
+ && containerNodeSpec.get().nodeState != Node.State.ready) {
Thread.sleep(10);
}
- assertThat(nodeRepositoryMock.getContainerNodeSpec(initialContainerNodeSpec.hostname).get().nodeState, is(NodeState.READY));
+ assertThat(nodeRepositoryMock.getContainerNodeSpec(initialContainerNodeSpec.hostname).get().nodeState, is(Node.State.ready));
assertTrue("Node set to dirty, but no stop/delete call received", callOrder.verifyInOrder(1000,
"stopContainer with ContainerName: ContainerName { name=container }",
@@ -128,7 +128,7 @@ public class NodeStateTest {
initialContainerNodeSpec.hostname,
newDockerImage,
initialContainerNodeSpec.containerName,
- NodeState.INACTIVE,
+ Node.State.inactive,
initialContainerNodeSpec.wantedRestartGeneration,
initialContainerNodeSpec.currentRestartGeneration,
initialContainerNodeSpec.minCpuCores,
@@ -145,7 +145,7 @@ public class NodeStateTest {
initialContainerNodeSpec.hostname,
newDockerImage,
initialContainerNodeSpec.containerName,
- NodeState.ACTIVE,
+ Node.State.active,
initialContainerNodeSpec.wantedRestartGeneration,
initialContainerNodeSpec.currentRestartGeneration,
initialContainerNodeSpec.minCpuCores,
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/ResumeTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/ResumeTest.java
index a8e6971e51e..9439950f8c1 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/ResumeTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/ResumeTest.java
@@ -11,8 +11,8 @@ import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentImpl;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import com.yahoo.vespa.hosted.dockerapi.DockerImage;
import com.yahoo.vespa.hosted.node.admin.docker.DockerOperationsImpl;
-import com.yahoo.vespa.hosted.node.admin.noderepository.NodeState;
import com.yahoo.vespa.hosted.node.admin.util.Environment;
+import com.yahoo.vespa.hosted.provision.Node;
import org.junit.Test;
import java.net.InetAddress;
@@ -54,7 +54,7 @@ public class ResumeTest {
new HostName("host1"),
Optional.of(new DockerImage("dockerImage")),
new ContainerName("container"),
- NodeState.ACTIVE,
+ Node.State.active,
Optional.of(1L),
Optional.of(1L),
Optional.of(1d),
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImplTest.java
index e8e52af5e33..eb93f65d32f 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImplTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImplTest.java
@@ -11,7 +11,7 @@ import com.yahoo.vespa.hosted.dockerapi.DockerImage;
import com.yahoo.vespa.hosted.node.admin.maintenance.MaintenanceScheduler;
import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgent;
import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentImpl;
-import com.yahoo.vespa.hosted.node.admin.noderepository.NodeState;
+import com.yahoo.vespa.hosted.provision.Node;
import org.junit.Test;
import org.mockito.InOrder;
@@ -66,7 +66,7 @@ public class NodeAdminImplTest {
hostName,
Optional.of(dockerImage),
containerName,
- NodeState.ACTIVE,
+ Node.State.active,
Optional.of(1L),
Optional.of(1L),
MIN_CPU_CORES,
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java
index 65fbdada986..d937d65363c 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdaterTest.java
@@ -1,5 +1,6 @@
package com.yahoo.vespa.hosted.node.admin.nodeadmin;
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
import com.yahoo.prelude.semantics.RuleBaseException;
import com.yahoo.vespa.applicationmodel.HostName;
import com.yahoo.vespa.hosted.node.admin.ContainerNodeSpec;
@@ -7,18 +8,15 @@ import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import com.yahoo.vespa.hosted.node.admin.integrationTests.CallOrderVerifier;
import com.yahoo.vespa.hosted.node.admin.integrationTests.OrchestratorMock;
import com.yahoo.vespa.hosted.node.admin.noderepository.NodeRepository;
-import com.yahoo.vespa.hosted.node.admin.noderepository.NodeState;
+import com.yahoo.vespa.hosted.provision.Node;
import org.junit.Test;
-import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import java.util.ArrayList;
-import java.util.Collections;
+import java.util.Collections;
import java.util.List;
import java.util.Optional;
-import java.util.concurrent.CountDownLatch;
-import static junit.framework.TestCase.assertTrue;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.junit.MatcherAssert.assertThat;
import static org.mockito.Matchers.anyList;
@@ -89,7 +87,7 @@ public class NodeAdminStateUpdaterTest {
new HostName("hostname"),
Optional.empty(),
new ContainerName("containername"),
- NodeState.ACTIVE,
+ Node.State.active,
Optional.empty(),
Optional.empty(),
Optional.empty(),
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
index 367a6281ac8..645a339d51d 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
@@ -2,18 +2,15 @@
package com.yahoo.vespa.hosted.node.admin.nodeagent;
import com.yahoo.vespa.applicationmodel.HostName;
-import com.yahoo.vespa.hosted.dockerapi.Container;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
-import com.yahoo.vespa.hosted.dockerapi.Docker;
import com.yahoo.vespa.hosted.dockerapi.DockerImage;
-import com.yahoo.vespa.hosted.dockerapi.ProcessResult;
import com.yahoo.vespa.hosted.node.admin.ContainerNodeSpec;
import com.yahoo.vespa.hosted.node.admin.docker.DockerOperations;
import com.yahoo.vespa.hosted.node.admin.maintenance.MaintenanceScheduler;
import com.yahoo.vespa.hosted.node.admin.noderepository.NodeRepository;
-import com.yahoo.vespa.hosted.node.admin.noderepository.NodeState;
import com.yahoo.vespa.hosted.node.admin.orchestrator.Orchestrator;
import com.yahoo.vespa.hosted.node.admin.orchestrator.OrchestratorException;
+import com.yahoo.vespa.hosted.provision.Node;
import org.junit.Test;
import org.mockito.InOrder;
@@ -38,12 +35,7 @@ public class NodeAgentImplTest {
private static final Optional<Double> MIN_MAIN_MEMORY_AVAILABLE_GB = Optional.of(1.0);
private static final Optional<Double> MIN_DISK_AVAILABLE_GB = Optional.of(1.0);
- private static final Optional<Container> NO_CONTAINER = Optional.empty();
-
- private static final ProcessResult NODE_PROGRAM_DOESNT_EXIST = new ProcessResult(1, "", "");
-
private final HostName hostName = new HostName("hostname");
- private final Docker docker = mock(Docker.class); // TODO: Remove: Use dockerOperations only
private final DockerOperations dockerOperations = mock(DockerOperations.class);
private final NodeRepository nodeRepository = mock(NodeRepository.class);
private final Orchestrator orchestrator = mock(Orchestrator.class);
@@ -60,7 +52,7 @@ public class NodeAgentImplTest {
hostName,
Optional.of(dockerImage),
containerName,
- NodeState.ACTIVE,
+ Node.State.active,
Optional.of(restartGeneration),
Optional.of(restartGeneration),
MIN_CPU_CORES,
@@ -102,13 +94,12 @@ public class NodeAgentImplTest {
hostName,
Optional.of(dockerImage),
containerName,
- NodeState.ACTIVE,
+ Node.State.active,
Optional.of(restartGeneration),
Optional.of(restartGeneration),
MIN_CPU_CORES,
MIN_MAIN_MEMORY_AVAILABLE_GB,
MIN_DISK_AVAILABLE_GB);
- final boolean isRunning = true;
final String vespaVersion = "7.8.9";
when(dockerOperations.shouldScheduleDownloadOfImage(any())).thenReturn(false);
@@ -143,7 +134,7 @@ public class NodeAgentImplTest {
hostName,
Optional.of(newDockerImage),
containerName,
- NodeState.ACTIVE,
+ Node.State.active,
Optional.of(wantedRestartGeneration),
Optional.of(currentRestartGeneration),
MIN_CPU_CORES,
@@ -175,7 +166,7 @@ public class NodeAgentImplTest {
hostName,
Optional.of(dockerImage),
containerName,
- NodeState.ACTIVE,
+ Node.State.active,
Optional.of(wantedRestartGeneration),
Optional.of(currentRestartGeneration),
MIN_CPU_CORES,
@@ -206,7 +197,7 @@ public class NodeAgentImplTest {
hostName,
Optional.of(dockerImage),
containerName,
- NodeState.FAILED,
+ Node.State.failed,
Optional.of(restartGeneration),
Optional.of(restartGeneration),
MIN_CPU_CORES,
@@ -231,7 +222,7 @@ public class NodeAgentImplTest {
hostName,
Optional.of(dockerImage),
containerName,
- NodeState.INACTIVE,
+ Node.State.inactive,
Optional.of(restartGeneration),
Optional.of(restartGeneration),
MIN_CPU_CORES,
@@ -250,7 +241,7 @@ public class NodeAgentImplTest {
verify(nodeRepository, never()).updateNodeAttributes(any(HostName.class), any(NodeAttributes.class));
}
- private void nodeRunningContainerIsTakenDownAndCleanedAndRecycled(NodeState nodeState, Optional<Long> wantedRestartGeneration)
+ private void nodeRunningContainerIsTakenDownAndCleanedAndRecycled(Node.State nodeState, Optional<Long> wantedRestartGeneration)
throws Exception {
final DockerImage dockerImage = new DockerImage("dockerImage");
final ContainerName containerName = new ContainerName("container-name");
@@ -284,17 +275,17 @@ public class NodeAgentImplTest {
@Test
public void dirtyNodeRunningContainerIsTakenDownAndCleanedAndRecycled() throws Exception {
- nodeRunningContainerIsTakenDownAndCleanedAndRecycled(NodeState.DIRTY, Optional.of(1L));
+ nodeRunningContainerIsTakenDownAndCleanedAndRecycled(Node.State.dirty, Optional.of(1L));
}
@Test
public void dirtyNodeRunningContainerIsTakenDownAndCleanedAndRecycledNoRestartGeneration() throws Exception {
- nodeRunningContainerIsTakenDownAndCleanedAndRecycled(NodeState.DIRTY, Optional.empty());
+ nodeRunningContainerIsTakenDownAndCleanedAndRecycled(Node.State.dirty, Optional.empty());
}
@Test
public void provisionedNodeWithNoContainerIsCleanedAndRecycled() throws Exception {
- nodeRunningContainerIsTakenDownAndCleanedAndRecycled(NodeState.PROVISIONED, Optional.of(1L));
+ nodeRunningContainerIsTakenDownAndCleanedAndRecycled(Node.State.provisioned, Optional.of(1L));
}
@Test
@@ -307,7 +298,7 @@ public class NodeAgentImplTest {
hostName,
Optional.of(wantedDockerImage),
containerName,
- NodeState.ACTIVE,
+ Node.State.active,
Optional.of(restartGeneration),
Optional.of(restartGeneration),
MIN_CPU_CORES,
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 544a6a5fbb2..03155d4cc57 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
@@ -10,6 +10,7 @@ import com.yahoo.vespa.hosted.node.admin.ContainerNodeSpec;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import com.yahoo.vespa.hosted.dockerapi.DockerImage;
import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAttributes;
+import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.testutils.ContainerConfig;
import org.junit.After;
@@ -90,7 +91,7 @@ public class NodeRepositoryImplTest {
assertThat(nodeSpec.hostname, is(new HostName("host4.yahoo.com")));
assertThat(nodeSpec.wantedDockerImage.get(), is(new DockerImage("image-123")));
assertThat(nodeSpec.containerName, is(new ContainerName("host4")));
- assertThat(nodeSpec.nodeState, is(NodeState.RESERVED));
+ assertThat(nodeSpec.nodeState, is(Node.State.reserved));
assertThat(nodeSpec.wantedRestartGeneration.get(), is(0L));
assertThat(nodeSpec.currentRestartGeneration.get(), is(0L));
assertThat(nodeSpec.minCpuCores.get(), is(2.0));
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java
index 0f3a87ff585..660ca500339 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/Node.java
@@ -93,7 +93,7 @@ public final class Node {
/** Returns the flavor of this node */
public Flavor flavor() { return flavor; }
- /** Returns the known information about the nodes ephemeral status */
+ /** Returns the known information about the node's ephemeral status */
public Status status() { return status; }
/** Returns the current state of this node (in the node state machine) */
@@ -130,7 +130,7 @@ public final class Node {
return with(allocation.get().unretire());
}
- /** Returns a copy of this with the current generation set to generation */
+ /** Returns a copy of this with the current restart generation set to generation */
public Node withRestart(Generation generation) {
final Optional<Allocation> allocation = this.allocation;
if ( ! allocation.isPresent())
@@ -154,7 +154,7 @@ public final class Node {
return new Node(openStackId, hostname, parentHostname, flavor, status, state, allocation, history, type);
}
- /** Returns a copy of this with the current generation set to generation */
+ /** Returns a copy of this with the current reboot generation set to generation */
public Node withReboot(Generation generation) {
return new Node(openStackId, hostname, parentHostname, flavor, status.withReboot(generation), state,
allocation, history, type);
@@ -217,7 +217,7 @@ public final class Node {
public enum State {
- /** This node has been requested (from OpenStack) but is not yet read for use */
+ /** This node has been requested (from OpenStack) but is not yet ready for use */
provisioned,
/** This node is free and ready for use */
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v1/NodesApiHandler.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v1/NodesApiHandler.java
index da70453c293..b5cf89004b9 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v1/NodesApiHandler.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v1/NodesApiHandler.java
@@ -22,7 +22,7 @@ import java.util.Optional;
import java.util.concurrent.Executor;
/**
- * The implementation of the /state/v1 API.
+ * The implementation of the /nodes/v1 API.
* This dumps the content of the node repository on request, possibly with a host filter to return just the single
* matching node.
*
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 9e240ba6055..4a346f5b1bb 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
@@ -34,7 +34,7 @@ import java.util.logging.Level;
import static com.yahoo.vespa.config.SlimeUtils.optionalString;
/**
- * The implementation of the /state/v2 API.
+ * The implementation of the /nodes/v2 API.
* See RestApiTest for documentation.
*
* @author bratseth