diff options
author | Harald Musum <musum@yahoo-inc.com> | 2016-09-19 09:59:23 +0200 |
---|---|---|
committer | Harald Musum <musum@yahoo-inc.com> | 2016-09-19 09:59:23 +0200 |
commit | 2af66af8a27556e65dac94360be6111a8fe964b9 (patch) | |
tree | 7581ea7e2d423f3e745b3d37801a0721acdfeffa | |
parent | 371cfd624c995ca8bb6e3b8a2983e79dd4b49b72 (diff) |
Use Node.State from node repo instead of duplicating value in our own class
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 |