summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@verizonmedia.com>2020-01-16 15:29:46 +0100
committerValerij Fredriksen <valerijf@verizonmedia.com>2020-01-16 15:29:46 +0100
commit31e9065ca43cf0ff7d22916317aca6efc2852301 (patch)
tree7b25c117bd1faee41431c4f75bad7d2021663bef /node-admin
parente05a5b8d30eead5e98439a50507074b56241ab45 (diff)
Always set restartGeneration in active state in test
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java119
1 files changed, 46 insertions, 73 deletions
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 f07c63c9f4c..bf5e5a67a79 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
@@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.node.admin.nodeagent;
import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.DockerImage;
+import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.flags.InMemoryFlagSource;
@@ -44,9 +45,7 @@ import static org.mockito.Mockito.when;
* @author Øyvind Bakksjø
*/
public class NodeAgentImplTest {
- private static final double MIN_CPU_CORES = 2;
- private static final double MIN_MAIN_MEMORY_AVAILABLE_GB = 16;
- private static final double MIN_DISK_AVAILABLE_GB = 250;
+ private static final NodeResources resources = new NodeResources(2, 16, 250, 1, NodeResources.DiskSpeed.fast, NodeResources.StorageType.local);
private static final Version vespaVersion = Version.fromString("1.2.3");
private final String hostName = "host1.test.yahoo.com";
@@ -54,9 +53,7 @@ public class NodeAgentImplTest {
.hostname(hostName)
.type(NodeType.tenant)
.flavor("docker")
- .vcpu(MIN_CPU_CORES)
- .memoryGb(MIN_MAIN_MEMORY_AVAILABLE_GB)
- .diskGb(MIN_DISK_AVAILABLE_GB);
+ .resources(resources);
private final NodeAgentContextSupplier contextSupplier = mock(NodeAgentContextSupplier.class);
private final DockerImage dockerImage = DockerImage.fromString("dockerImage");
@@ -73,11 +70,10 @@ public class NodeAgentImplTest {
@Test
public void upToDateContainerIsUntouched() {
final NodeSpec node = nodeBuilder
- .wantedDockerImage(dockerImage)
- .currentDockerImage(dockerImage)
.state(NodeState.active)
- .wantedVespaVersion(vespaVersion)
- .currentVespaVersion(vespaVersion)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
+ .wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
+ .wantedRestartGeneration(1).currentRestartGeneration(1)
.build();
NodeAgentContext context = createContext(node);
@@ -102,11 +98,10 @@ public class NodeAgentImplTest {
@Test
public void verifyRemoveOldFilesIfDiskFull() {
final NodeSpec node = nodeBuilder
- .wantedDockerImage(dockerImage)
- .currentDockerImage(dockerImage)
.state(NodeState.active)
- .wantedVespaVersion(vespaVersion)
- .currentVespaVersion(vespaVersion)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
+ .wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
+ .wantedRestartGeneration(1).currentRestartGeneration(1)
.build();
NodeAgentContext context = createContext(node);
@@ -123,11 +118,10 @@ public class NodeAgentImplTest {
public void startsAfterStoppingServices() {
final InOrder inOrder = inOrder(dockerOperations);
final NodeSpec node = nodeBuilder
- .wantedDockerImage(dockerImage)
- .currentDockerImage(dockerImage)
.state(NodeState.active)
- .wantedVespaVersion(vespaVersion)
- .currentVespaVersion(vespaVersion)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
+ .wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
+ .wantedRestartGeneration(1).currentRestartGeneration(1)
.build();
NodeAgentContext context = createContext(node);
@@ -159,13 +153,11 @@ public class NodeAgentImplTest {
@Test
public void absentContainerCausesStart() {
- final Optional<Long> restartGeneration = Optional.of(1L);
final NodeSpec node = nodeBuilder
- .wantedDockerImage(dockerImage)
.state(NodeState.active)
+ .wantedDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion)
- .wantedRestartGeneration(restartGeneration.get())
- .currentRestartGeneration(restartGeneration.get())
+ .wantedRestartGeneration(1).currentRestartGeneration(1)
.build();
NodeAgentContext context = createContext(node);
@@ -197,11 +189,10 @@ public class NodeAgentImplTest {
public void containerIsNotStoppedIfNewImageMustBePulled() {
final DockerImage newDockerImage = DockerImage.fromString("new-image");
final NodeSpec node = nodeBuilder
- .wantedDockerImage(newDockerImage)
- .currentDockerImage(dockerImage)
.state(NodeState.active)
- .wantedVespaVersion(vespaVersion)
- .currentVespaVersion(vespaVersion)
+ .wantedDockerImage(newDockerImage).currentDockerImage(dockerImage)
+ .wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
+ .wantedRestartGeneration(1).currentRestartGeneration(1)
.build();
NodeAgentContext context = createContext(node);
@@ -224,11 +215,10 @@ public class NodeAgentImplTest {
@Test
public void containerIsUpdatedIfCpuChanged() {
NodeSpec.Builder specBuilder = nodeBuilder
- .wantedDockerImage(dockerImage)
- .currentDockerImage(dockerImage)
.state(NodeState.active)
- .wantedVespaVersion(vespaVersion)
- .currentVespaVersion(vespaVersion);
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
+ .wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
+ .wantedRestartGeneration(1).currentRestartGeneration(1);
NodeAgentContext firstContext = createContext(specBuilder.build());
NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
@@ -271,13 +261,10 @@ public class NodeAgentImplTest {
@Test
public void vespaIsRestartedIfMemoryChanged() {
NodeSpec.Builder specBuilder = nodeBuilder
- .wantedDockerImage(dockerImage)
- .currentDockerImage(dockerImage)
.state(NodeState.active)
- .wantedVespaVersion(vespaVersion)
- .currentVespaVersion(vespaVersion)
- .wantedRestartGeneration(1)
- .currentRestartGeneration(1);
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
+ .wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
+ .wantedRestartGeneration(1).currentRestartGeneration(1);
NodeAgentContext firstContext = createContext(specBuilder.build());
NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
@@ -305,16 +292,11 @@ public class NodeAgentImplTest {
@Test
public void noRestartIfOrchestratorSuspendFails() {
- final long wantedRestartGeneration = 2;
- final long currentRestartGeneration = 1;
final NodeSpec node = nodeBuilder
- .wantedDockerImage(dockerImage)
- .currentDockerImage(dockerImage)
.state(NodeState.active)
- .wantedVespaVersion(vespaVersion)
- .currentVespaVersion(vespaVersion)
- .wantedRestartGeneration(wantedRestartGeneration)
- .currentRestartGeneration(currentRestartGeneration)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
+ .wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
+ .wantedRestartGeneration(2).currentRestartGeneration(1)
.build();
NodeAgentContext context = createContext(node);
@@ -338,15 +320,12 @@ public class NodeAgentImplTest {
@Test
public void recreatesContainerIfRebootWanted() {
final long wantedRebootGeneration = 2;
- final long currentRebootGeneration = 1;
final NodeSpec node = nodeBuilder
- .wantedDockerImage(dockerImage)
- .currentDockerImage(dockerImage)
.state(NodeState.active)
- .wantedVespaVersion(vespaVersion)
- .currentVespaVersion(vespaVersion)
- .wantedRebootGeneration(wantedRebootGeneration)
- .currentRebootGeneration(currentRebootGeneration)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
+ .wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
+ .wantedRestartGeneration(1).currentRestartGeneration(1)
+ .wantedRebootGeneration(wantedRebootGeneration).currentRebootGeneration(1)
.build();
NodeAgentContext context = createContext(node);
@@ -383,11 +362,9 @@ public class NodeAgentImplTest {
@Test
public void failedNodeRunningContainerShouldStillBeRunning() {
final NodeSpec node = nodeBuilder
- .wantedDockerImage(dockerImage)
- .currentDockerImage(dockerImage)
.state(NodeState.failed)
- .wantedVespaVersion(vespaVersion)
- .currentVespaVersion(vespaVersion)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
+ .wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
.build();
NodeAgentContext context = createContext(node);
@@ -429,11 +406,9 @@ public class NodeAgentImplTest {
@Test
public void inactiveNodeRunningContainerShouldStillBeRunning() {
final NodeSpec node = nodeBuilder
- .wantedDockerImage(dockerImage)
- .currentDockerImage(dockerImage)
.state(NodeState.inactive)
- .wantedVespaVersion(vespaVersion)
- .currentVespaVersion(vespaVersion)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
+ .wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
.build();
NodeAgentContext context = createContext(node);
@@ -453,8 +428,8 @@ public class NodeAgentImplTest {
@Test
public void reservedNodeDoesNotUpdateNodeRepoWithVersion() {
final NodeSpec node = nodeBuilder
- .wantedDockerImage(dockerImage)
.state(NodeState.reserved)
+ .wantedDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion)
.build();
@@ -470,13 +445,11 @@ public class NodeAgentImplTest {
private void nodeRunningContainerIsTakenDownAndCleanedAndRecycled(NodeState nodeState, Optional<Long> wantedRestartGeneration) {
wantedRestartGeneration.ifPresent(restartGeneration -> nodeBuilder
- .wantedRestartGeneration(restartGeneration)
- .currentRestartGeneration(restartGeneration));
+ .wantedRestartGeneration(restartGeneration).currentRestartGeneration(restartGeneration));
final NodeSpec node = nodeBuilder
- .wantedDockerImage(dockerImage)
- .currentDockerImage(dockerImage)
.state(nodeState)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.build();
NodeAgentContext context = createContext(node);
@@ -532,9 +505,8 @@ public class NodeAgentImplTest {
@Test
public void testRestartDeadContainerAfterNodeAdminRestart() {
final NodeSpec node = nodeBuilder
- .currentDockerImage(dockerImage)
- .wantedDockerImage(dockerImage)
.state(NodeState.active)
+ .currentDockerImage(dockerImage).wantedDockerImage(dockerImage)
.currentVespaVersion(vespaVersion)
.build();
@@ -554,10 +526,10 @@ public class NodeAgentImplTest {
@Test
public void resumeProgramRunsUntilSuccess() {
final NodeSpec node = nodeBuilder
- .wantedDockerImage(dockerImage)
- .currentDockerImage(dockerImage)
.state(NodeState.active)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.currentVespaVersion(vespaVersion)
+ .wantedRestartGeneration(1).currentRestartGeneration(1)
.build();
NodeAgentContext context = createContext(node);
@@ -591,9 +563,10 @@ public class NodeAgentImplTest {
@Test
public void start_container_subtask_failure_leads_to_container_restart() {
final NodeSpec node = nodeBuilder
- .wantedDockerImage(dockerImage)
.state(NodeState.active)
+ .wantedDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion)
+ .wantedRestartGeneration(1).currentRestartGeneration(1)
.build();
NodeAgentContext context = createContext(node);
@@ -627,9 +600,9 @@ public class NodeAgentImplTest {
@Test
public void testRunningConfigServer() {
final NodeSpec node = nodeBuilder
+ .state(NodeState.active)
.type(NodeType.config)
.wantedDockerImage(dockerImage)
- .state(NodeState.active)
.wantedVespaVersion(vespaVersion)
.build();
@@ -669,11 +642,11 @@ public class NodeAgentImplTest {
private void verifyThatContainerIsStopped(NodeState nodeState, Optional<ApplicationId> owner) {
NodeSpec.Builder nodeBuilder = new NodeSpec.Builder()
+ .resources(resources)
.hostname(hostName)
.type(NodeType.tenant)
.flavor("docker")
- .currentDockerImage(dockerImage)
- .wantedDockerImage(dockerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.state(nodeState);
owner.ifPresent(nodeBuilder::owner);
@@ -706,7 +679,7 @@ public class NodeAgentImplTest {
}
private void mockGetContainer(DockerImage dockerImage, boolean isRunning) {
- mockGetContainer(dockerImage, ContainerResources.from(0, MIN_CPU_CORES, MIN_MAIN_MEMORY_AVAILABLE_GB), isRunning);
+ mockGetContainer(dockerImage, ContainerResources.from(0, resources.vcpu(), resources.memoryGb()), isRunning);
}
private void mockGetContainer(DockerImage dockerImage, ContainerResources containerResources, boolean isRunning) {