summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2020-09-08 09:00:56 +0200
committerHåkon Hallingstad <hakon@verizonmedia.com>2020-09-08 09:00:56 +0200
commit92494ee6cb4b373c0a3ddf44997dc2a1ec35ef0d (patch)
tree79c7d6b106a66e1338edea956a15bd1ed6310030 /node-admin
parente858dfe2815e6ffda326f69f1a62bcb0f4c2c3db (diff)
Avoid renaming DockerImage which is used in the config model
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java10
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java32
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java8
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperations.java6
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperationsImpl.java10
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java4
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java8
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java6
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperationsImplTest.java4
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerFailTest.java12
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java18
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java16
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RebootTest.java8
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java10
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java124
15 files changed, 138 insertions, 138 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java
index 168365a6dfd..94431f8ac57 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java
@@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.node.admin.configserver.noderepository;
import com.fasterxml.jackson.databind.JsonNode;
import com.yahoo.component.Version;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import java.time.Instant;
import java.util.Map;
@@ -24,7 +24,7 @@ public class NodeAttributes {
private Optional<Long> restartGeneration = Optional.empty();
private Optional<Long> rebootGeneration = Optional.empty();
- private Optional<ContainerImage> dockerImage = Optional.empty();
+ private Optional<DockerImage> dockerImage = Optional.empty();
private Optional<Version> vespaVersion = Optional.empty();
private Optional<Version> currentOsVersion = Optional.empty();
private Optional<Instant> currentFirmwareCheck = Optional.empty();
@@ -47,8 +47,8 @@ public class NodeAttributes {
return this;
}
- public NodeAttributes withDockerImage(ContainerImage containerImage) {
- this.dockerImage = Optional.of(containerImage);
+ public NodeAttributes withDockerImage(DockerImage dockerImage) {
+ this.dockerImage = Optional.of(dockerImage);
return this;
}
@@ -90,7 +90,7 @@ public class NodeAttributes {
return rebootGeneration;
}
- public Optional<ContainerImage> getDockerImage() {
+ public Optional<DockerImage> getDockerImage() {
return dockerImage;
}
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java
index ce058a8c744..f7f231d5e0c 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java
@@ -4,7 +4,7 @@ package com.yahoo.vespa.hosted.node.admin.configserver.noderepository;
import com.fasterxml.jackson.databind.JsonNode;
import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
import com.yahoo.vespa.hosted.node.admin.task.util.file.DiskSize;
@@ -28,8 +28,8 @@ public class NodeSpec {
private final NodeType type;
private final String flavor;
- private final Optional<ContainerImage> wantedDockerImage;
- private final Optional<ContainerImage> currentDockerImage;
+ private final Optional<DockerImage> wantedDockerImage;
+ private final Optional<DockerImage> currentDockerImage;
private final Optional<Version> wantedVespaVersion;
private final Optional<Version> currentVespaVersion;
@@ -62,8 +62,8 @@ public class NodeSpec {
public NodeSpec(
String hostname,
- Optional<ContainerImage> wantedDockerImage,
- Optional<ContainerImage> currentDockerImage,
+ Optional<DockerImage> wantedDockerImage,
+ Optional<DockerImage> currentDockerImage,
NodeState state,
NodeType type,
String flavor,
@@ -138,11 +138,11 @@ public class NodeSpec {
return flavor;
}
- public Optional<ContainerImage> wantedDockerImage() {
+ public Optional<DockerImage> wantedDockerImage() {
return wantedDockerImage;
}
- public Optional<ContainerImage> currentDockerImage() {
+ public Optional<DockerImage> currentDockerImage() {
return currentDockerImage;
}
@@ -341,8 +341,8 @@ public class NodeSpec {
private NodeState state;
private NodeType type;
private String flavor;
- private Optional<ContainerImage> wantedDockerImage = Optional.empty();
- private Optional<ContainerImage> currentDockerImage = Optional.empty();
+ private Optional<DockerImage> wantedDockerImage = Optional.empty();
+ private Optional<DockerImage> currentDockerImage = Optional.empty();
private Optional<Version> wantedVespaVersion = Optional.empty();
private Optional<Version> currentVespaVersion = Optional.empty();
private Optional<Version> wantedOsVersion = Optional.empty();
@@ -397,13 +397,13 @@ public class NodeSpec {
return this;
}
- public Builder wantedDockerImage(ContainerImage wantedContainerImage) {
- this.wantedDockerImage = Optional.of(wantedContainerImage);
+ public Builder wantedDockerImage(DockerImage wantedDockerImage) {
+ this.wantedDockerImage = Optional.of(wantedDockerImage);
return this;
}
- public Builder currentDockerImage(ContainerImage currentContainerImage) {
- this.currentDockerImage = Optional.of(currentContainerImage);
+ public Builder currentDockerImage(DockerImage currentDockerImage) {
+ this.currentDockerImage = Optional.of(currentDockerImage);
return this;
}
@@ -556,11 +556,11 @@ public class NodeSpec {
return hostname;
}
- public Optional<ContainerImage> wantedDockerImage() {
+ public Optional<DockerImage> wantedDockerImage() {
return wantedDockerImage;
}
- public Optional<ContainerImage> currentDockerImage() {
+ public Optional<DockerImage> currentDockerImage() {
return currentDockerImage;
}
@@ -673,7 +673,7 @@ public class NodeSpec {
builder .owner(ApplicationId.defaultId())
.membership(new NodeMembership("container", "my-id", "group", 0, false))
.wantedVespaVersion(Version.fromString("7.1.1"))
- .wantedDockerImage(ContainerImage.fromString("docker.domain.tld/repo/image:7.1.1"))
+ .wantedDockerImage(DockerImage.fromString("docker.domain.tld/repo/image:7.1.1"))
.currentRestartGeneration(0)
.wantedRestartGeneration(0);
}
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java
index 08f16ac18a9..2e47410f1b5 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java
@@ -5,7 +5,7 @@ import com.fasterxml.jackson.databind.JsonNode;
import com.google.common.base.Strings;
import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.host.FlavorOverrides;
@@ -152,8 +152,8 @@ public class RealNodeRepository implements NodeRepository {
NodeReports reports = NodeReports.fromMap(Optional.ofNullable(node.reports).orElseGet(Map::of));
return new NodeSpec(
node.hostname,
- Optional.ofNullable(node.wantedDockerImage).map(ContainerImage::fromString),
- Optional.ofNullable(node.currentDockerImage).map(ContainerImage::fromString),
+ Optional.ofNullable(node.wantedDockerImage).map(DockerImage::fromString),
+ Optional.ofNullable(node.currentDockerImage).map(DockerImage::fromString),
nodeState,
nodeType,
node.flavor,
@@ -249,7 +249,7 @@ public class RealNodeRepository implements NodeRepository {
public static NodeRepositoryNode nodeRepositoryNodeFromNodeAttributes(NodeAttributes nodeAttributes) {
NodeRepositoryNode node = new NodeRepositoryNode();
- node.currentDockerImage = nodeAttributes.getDockerImage().map(ContainerImage::asString).orElse(null);
+ node.currentDockerImage = nodeAttributes.getDockerImage().map(DockerImage::asString).orElse(null);
node.currentRestartGeneration = nodeAttributes.getRestartGeneration().orElse(null);
node.currentRebootGeneration = nodeAttributes.getRebootGeneration().orElse(null);
node.vespaVersion = nodeAttributes.getVespaVersion().map(Version::toFullString).orElse(null);
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperations.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperations.java
index c7033000967..9e6b6200b8c 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperations.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperations.java
@@ -1,7 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.docker;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.vespa.hosted.dockerapi.Container;
import com.yahoo.vespa.hosted.dockerapi.ContainerResources;
import com.yahoo.vespa.hosted.dockerapi.ContainerStats;
@@ -26,7 +26,7 @@ public interface ContainerOperations {
Optional<Container> getContainer(NodeAgentContext context);
- boolean pullImageAsyncIfNeeded(ContainerImage containerImage);
+ boolean pullImageAsyncIfNeeded(DockerImage dockerImage);
ProcessResult executeCommandInContainerAsRoot(NodeAgentContext context, String... command);
@@ -56,5 +56,5 @@ public interface ContainerOperations {
boolean noManagedContainersRunning();
/** Deletes the local images that are currently not in use by any container and not recently used. */
- boolean deleteUnusedContainerImages(List<ContainerImage> excludes, Duration minImageAgeToDelete);
+ boolean deleteUnusedContainerImages(List<DockerImage> excludes, Duration minImageAgeToDelete);
}
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperationsImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperationsImpl.java
index 58f4026e24b..9d53730cfc9 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperationsImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperationsImpl.java
@@ -2,7 +2,7 @@
package com.yahoo.vespa.hosted.node.admin.docker;
import com.google.common.net.InetAddresses;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.SystemName;
@@ -209,8 +209,8 @@ public class ContainerOperationsImpl implements ContainerOperations {
}
@Override
- public boolean pullImageAsyncIfNeeded(ContainerImage containerImage) {
- return containerEngine.pullImageAsyncIfNeeded(containerImage);
+ public boolean pullImageAsyncIfNeeded(DockerImage dockerImage) {
+ return containerEngine.pullImageAsyncIfNeeded(dockerImage);
}
@Override
@@ -324,8 +324,8 @@ public class ContainerOperationsImpl implements ContainerOperations {
}
@Override
- public boolean deleteUnusedContainerImages(List<ContainerImage> excludes, Duration minImageAgeToDelete) {
- return containerEngine.deleteUnusedContainerImages(excludes, minImageAgeToDelete);
+ public boolean deleteUnusedContainerImages(List<DockerImage> excludes, Duration minImageAgeToDelete) {
+ return containerEngine.deleteUnusedDockerImages(excludes, minImageAgeToDelete);
}
/** Returns whether given nodeType is a Docker host for infrastructure nodes */
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java
index 836c8e5fc36..a5efec1dcb7 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java
@@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.node.admin.maintenance;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.NodeType;
import com.yahoo.vespa.hosted.dockerapi.Container;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
@@ -208,7 +208,7 @@ public class StorageMaintainer {
private String getDockerImage(NodeAgentContext context, Optional<Container> container) {
return container.map(c -> c.image.asString())
.orElse(context.node().currentDockerImage()
- .map(ContainerImage::asString)
+ .map(DockerImage::asString)
.orElse("<none>")
);
}
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 61d80339dd6..6b7b72f2746 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
@@ -1,7 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.nodeagent;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.zone.ZoneApi;
@@ -185,10 +185,10 @@ public class NodeAgentImpl implements NodeAgent {
newNodeAttributes.withRebootGeneration(currentRebootGeneration);
}
- Optional<ContainerImage> actualDockerImage = context.node().wantedDockerImage().filter(n -> containerState == UNKNOWN);
+ Optional<DockerImage> actualDockerImage = context.node().wantedDockerImage().filter(n -> containerState == UNKNOWN);
if (!Objects.equals(context.node().currentDockerImage(), actualDockerImage)) {
- ContainerImage currentImage = context.node().currentDockerImage().orElse(ContainerImage.EMPTY);
- ContainerImage newImage = actualDockerImage.orElse(ContainerImage.EMPTY);
+ DockerImage currentImage = context.node().currentDockerImage().orElse(DockerImage.EMPTY);
+ DockerImage newImage = actualDockerImage.orElse(DockerImage.EMPTY);
currentNodeAttributes.withDockerImage(currentImage);
currentNodeAttributes.withVespaVersion(currentImage.tagAsVersion());
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java
index e39161f828a..2e40596bcf0 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java
@@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.node.admin.configserver.noderepository;
import com.yahoo.application.Networking;
import com.yahoo.application.container.JDisc;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.host.FlavorOverrides;
@@ -106,7 +106,7 @@ public class RealNodeRepositoryTest {
assertThat(containersToRun.size(), is(1));
NodeSpec node = containersToRun.get(0);
assertThat(node.hostname(), is("host4.yahoo.com"));
- assertThat(node.wantedDockerImage().get(), is(ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa:6.42.0")));
+ assertThat(node.wantedDockerImage().get(), is(DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa:6.42.0")));
assertThat(node.state(), is(NodeState.active));
assertThat(node.wantedRestartGeneration().get(), is(0L));
assertThat(node.currentRestartGeneration().get(), is(0L));
@@ -137,7 +137,7 @@ public class RealNodeRepositoryTest {
hostname,
new NodeAttributes()
.withRestartGeneration(1)
- .withDockerImage(ContainerImage.fromString("image-1:6.2.3")));
+ .withDockerImage(DockerImage.fromString("image-1:6.2.3")));
}
@Test
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperationsImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperationsImplTest.java
index 4aa59c63662..d01b42ba48c 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperationsImplTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/docker/ContainerOperationsImplTest.java
@@ -2,7 +2,7 @@
package com.yahoo.vespa.hosted.node.admin.docker;
import com.google.common.net.InetAddresses;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.vespa.hosted.dockerapi.Container;
import com.yahoo.vespa.hosted.dockerapi.ContainerEngine;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
@@ -83,7 +83,7 @@ public class ContainerOperationsImplTest {
}
private Container makeContainer(String name, Container.State state, int pid) {
- final Container container = new Container(name + ".fqdn", ContainerImage.fromString("mock"), null,
+ final Container container = new Container(name + ".fqdn", DockerImage.fromString("mock"), null,
new ContainerName(name), state, pid);
when(containerEngine.getContainer(eq(container.name))).thenReturn(Optional.of(container));
return container;
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 50435ccf46d..5688fcace6f 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
@@ -1,7 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.integrationTests;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec;
import org.junit.Test;
@@ -19,23 +19,23 @@ public class DockerFailTest {
@Test
public void dockerFailTest() {
try (DockerTester tester = new DockerTester()) {
- final ContainerImage containerImage = ContainerImage.fromString("containerImage");
+ final DockerImage dockerImage = DockerImage.fromString("dockerImage");
final ContainerName containerName = new ContainerName("host1");
final String hostname = "host1.test.yahoo.com";
tester.addChildNodeRepositoryNode(NodeSpec.Builder
.testSpec(hostname)
- .wantedDockerImage(containerImage)
- .currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage)
+ .currentDockerImage(dockerImage)
.build());
- tester.inOrder(tester.containerEngine).createContainerCommand(eq(containerImage), eq(containerName));
+ tester.inOrder(tester.containerEngine).createContainerCommand(eq(dockerImage), eq(containerName));
tester.inOrder(tester.containerEngine).executeInContainerAsUser(
eq(containerName), eq("root"), any(), eq(DockerTester.NODE_PROGRAM), eq("resume"));
tester.containerEngine.deleteContainer(new ContainerName("host1"));
tester.inOrder(tester.containerEngine).deleteContainer(eq(containerName));
- tester.inOrder(tester.containerEngine).createContainerCommand(eq(containerImage), eq(containerName));
+ tester.inOrder(tester.containerEngine).createContainerCommand(eq(dockerImage), eq(containerName));
tester.inOrder(tester.containerEngine).executeInContainerAsUser(
eq(containerName), eq("root"), any(), eq(DockerTester.NODE_PROGRAM), eq("resume"));
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java
index 000d0e69550..310d950c5c3 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java
@@ -1,7 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.integrationTests;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.vespa.hosted.dockerapi.Container;
import com.yahoo.vespa.hosted.dockerapi.ContainerEngine;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
@@ -28,8 +28,8 @@ public class DockerMock implements ContainerEngine {
private static final Object monitor = new Object();
@Override
- public CreateContainerCommand createContainerCommand(ContainerImage containerImage, ContainerName containerName) {
- return new StartContainerCommandMock(containerImage, containerName);
+ public CreateContainerCommand createContainerCommand(DockerImage dockerImage, ContainerName containerName) {
+ return new StartContainerCommandMock(dockerImage, containerName);
}
@Override
@@ -75,14 +75,14 @@ public class DockerMock implements ContainerEngine {
}
@Override
- public boolean pullImageAsyncIfNeeded(ContainerImage image) {
+ public boolean pullImageAsyncIfNeeded(DockerImage image) {
synchronized (monitor) {
return false;
}
}
@Override
- public boolean deleteUnusedContainerImages(List<ContainerImage> excludes, Duration minImageAgeToDelete) {
+ public boolean deleteUnusedDockerImages(List<DockerImage> excludes, Duration minImageAgeToDelete) {
return false;
}
@@ -98,13 +98,13 @@ public class DockerMock implements ContainerEngine {
public class StartContainerCommandMock implements CreateContainerCommand {
- private final ContainerImage containerImage;
+ private final DockerImage dockerImage;
private final ContainerName containerName;
private String hostName;
private ContainerResources containerResources;
- public StartContainerCommandMock(ContainerImage containerImage, ContainerName containerName) {
- this.containerImage = containerImage;
+ public StartContainerCommandMock(DockerImage dockerImage, ContainerName containerName) {
+ this.dockerImage = dockerImage;
this.containerName = containerName;
}
@@ -194,7 +194,7 @@ public class DockerMock implements ContainerEngine {
public void create() {
synchronized (monitor) {
containersByContainerName.put(
- containerName, new Container(hostName, containerImage, containerResources, containerName, Container.State.RUNNING, 2));
+ containerName, new Container(hostName, dockerImage, containerResources, containerName, Container.State.RUNNING, 2));
}
}
}
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 1c2bd86a00e..6f85703a4d5 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
@@ -1,7 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.integrationTests;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeAttributes;
import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec;
@@ -20,9 +20,9 @@ public class MultiDockerTest {
@Test
public void test() {
try (DockerTester tester = new DockerTester()) {
- addAndWaitForNode(tester, "host1.test.yahoo.com", ContainerImage.fromString("image1"));
+ addAndWaitForNode(tester, "host1.test.yahoo.com", DockerImage.fromString("image1"));
NodeSpec nodeSpec2 = addAndWaitForNode(
- tester, "host2.test.yahoo.com", ContainerImage.fromString("image2"));
+ tester, "host2.test.yahoo.com", DockerImage.fromString("image2"));
tester.addChildNodeRepositoryNode(NodeSpec.Builder.testSpec(nodeSpec2.hostname(), NodeState.dirty).build());
@@ -31,20 +31,20 @@ public class MultiDockerTest {
argThat(context -> context.containerName().equals(new ContainerName("host2"))));
tester.inOrder(tester.nodeRepository).setNodeState(eq(nodeSpec2.hostname()), eq(NodeState.ready));
- addAndWaitForNode(tester, "host3.test.yahoo.com", ContainerImage.fromString("image1"));
+ addAndWaitForNode(tester, "host3.test.yahoo.com", DockerImage.fromString("image1"));
}
}
- private NodeSpec addAndWaitForNode(DockerTester tester, String hostName, ContainerImage containerImage) {
- NodeSpec nodeSpec = NodeSpec.Builder.testSpec(hostName).wantedDockerImage(containerImage).build();
+ private NodeSpec addAndWaitForNode(DockerTester tester, String hostName, DockerImage dockerImage) {
+ NodeSpec nodeSpec = NodeSpec.Builder.testSpec(hostName).wantedDockerImage(dockerImage).build();
tester.addChildNodeRepositoryNode(nodeSpec);
ContainerName containerName = ContainerName.fromHostname(hostName);
- tester.inOrder(tester.containerEngine).createContainerCommand(eq(containerImage), eq(containerName));
+ tester.inOrder(tester.containerEngine).createContainerCommand(eq(dockerImage), eq(containerName));
tester.inOrder(tester.containerEngine).executeInContainerAsUser(
eq(containerName), eq("root"), any(), eq(DockerTester.NODE_PROGRAM), eq("resume"));
tester.inOrder(tester.nodeRepository).updateNodeAttributes(eq(hostName),
- eq(new NodeAttributes().withDockerImage(containerImage).withVespaVersion(containerImage.tagAsVersion())));
+ eq(new NodeAttributes().withDockerImage(dockerImage).withVespaVersion(dockerImage.tagAsVersion())));
return nodeSpec;
}
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RebootTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RebootTest.java
index 4fb1c578fac..6c69453ac71 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RebootTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RebootTest.java
@@ -1,7 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.integrationTests;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec;
import com.yahoo.vespa.hosted.node.admin.nodeadmin.NodeAdminStateUpdater;
@@ -23,14 +23,14 @@ import static org.mockito.ArgumentMatchers.eq;
public class RebootTest {
private final String hostname = "host1.test.yahoo.com";
- private final ContainerImage containerImage = ContainerImage.fromString("containerImage");
+ private final DockerImage dockerImage = DockerImage.fromString("dockerImage");
@Test
public void test() {
try (DockerTester tester = new DockerTester()) {
- tester.addChildNodeRepositoryNode(NodeSpec.Builder.testSpec(hostname).wantedDockerImage(containerImage).build());
+ tester.addChildNodeRepositoryNode(NodeSpec.Builder.testSpec(hostname).wantedDockerImage(dockerImage).build());
- tester.inOrder(tester.containerEngine).createContainerCommand(eq(containerImage), eq(new ContainerName("host1")));
+ tester.inOrder(tester.containerEngine).createContainerCommand(eq(dockerImage), eq(new ContainerName("host1")));
try {
tester.setWantedState(NodeAdminStateUpdater.State.SUSPENDED);
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java
index caf7945d05b..6f887fb1179 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java
@@ -1,7 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.integrationTests;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeAttributes;
import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec;
@@ -22,13 +22,13 @@ public class RestartTest {
public void test() {
try (DockerTester tester = new DockerTester()) {
String hostname = "host1.test.yahoo.com";
- ContainerImage containerImage = ContainerImage.fromString("containerImage:1.2.3");
+ DockerImage dockerImage = DockerImage.fromString("dockerImage:1.2.3");
- tester.addChildNodeRepositoryNode(NodeSpec.Builder.testSpec(hostname).wantedDockerImage(containerImage).build());
+ tester.addChildNodeRepositoryNode(NodeSpec.Builder.testSpec(hostname).wantedDockerImage(dockerImage).build());
- tester.inOrder(tester.containerEngine).createContainerCommand(eq(containerImage), eq(new ContainerName("host1")));
+ tester.inOrder(tester.containerEngine).createContainerCommand(eq(dockerImage), eq(new ContainerName("host1")));
tester.inOrder(tester.nodeRepository).updateNodeAttributes(
- eq(hostname), eq(new NodeAttributes().withDockerImage(containerImage).withVespaVersion(containerImage.tagAsVersion())));
+ eq(hostname), eq(new NodeAttributes().withDockerImage(dockerImage).withVespaVersion(dockerImage.tagAsVersion())));
// Increment wantedRestartGeneration to 2 in node-repo
tester.addChildNodeRepositoryNode(new NodeSpec.Builder(tester.nodeRepository.getNode(hostname))
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 43bb73ae8d0..fdd950f7428 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
@@ -3,7 +3,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.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
import com.yahoo.test.ManualClock;
@@ -55,7 +55,7 @@ public class NodeAgentImplTest {
private static final String hostName = "host1.test.yahoo.com";
private final NodeAgentContextSupplier contextSupplier = mock(NodeAgentContextSupplier.class);
- private final ContainerImage containerImage = ContainerImage.fromString("containerImage");
+ private final DockerImage dockerImage = DockerImage.fromString("dockerImage");
private final ContainerOperations containerOperations = mock(ContainerOperations.class);
private final NodeRepository nodeRepository = mock(NodeRepository.class);
private final Orchestrator orchestrator = mock(Orchestrator.class);
@@ -70,13 +70,13 @@ public class NodeAgentImplTest {
@Test
public void upToDateContainerIsUntouched() {
final NodeSpec node = nodeBuilder(NodeState.active)
- .wantedDockerImage(containerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
.allowedToBeDown(false)
.build();
NodeAgentContext context = createContext(node);
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(nodeRepository.getOptionalNode(hostName)).thenReturn(Optional.of(node));
nodeAgent.doConverge(context);
@@ -95,12 +95,12 @@ public class NodeAgentImplTest {
@Test
public void verifyRemoveOldFilesIfDiskFull() {
final NodeSpec node = nodeBuilder(NodeState.active)
- .wantedDockerImage(containerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
.build();
NodeAgentContext context = createContext(node);
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(nodeRepository.getOptionalNode(hostName)).thenReturn(Optional.of(node));
nodeAgent.doConverge(context);
@@ -112,12 +112,12 @@ public class NodeAgentImplTest {
public void startsAfterStoppingServices() {
final InOrder inOrder = inOrder(containerOperations);
final NodeSpec node = nodeBuilder(NodeState.active)
- .wantedDockerImage(containerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
.build();
NodeAgentContext context = createContext(node);
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(nodeRepository.getOptionalNode(hostName)).thenReturn(Optional.of(node));
nodeAgent.doConverge(context);
@@ -145,7 +145,7 @@ public class NodeAgentImplTest {
@Test
public void absentContainerCausesStart() {
final NodeSpec node = nodeBuilder(NodeState.active)
- .wantedDockerImage(containerImage)
+ .wantedDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion)
.build();
@@ -153,7 +153,7 @@ public class NodeAgentImplTest {
NodeAgentImpl nodeAgent = makeNodeAgent(null, false);
when(nodeRepository.getOptionalNode(hostName)).thenReturn(Optional.of(node));
- when(containerOperations.pullImageAsyncIfNeeded(eq(containerImage))).thenReturn(false);
+ when(containerOperations.pullImageAsyncIfNeeded(eq(dockerImage))).thenReturn(false);
nodeAgent.doConverge(context);
@@ -162,27 +162,27 @@ public class NodeAgentImplTest {
verify(orchestrator, never()).suspend(any(String.class));
final InOrder inOrder = inOrder(containerOperations, orchestrator, nodeRepository, aclMaintainer, healthChecker);
- inOrder.verify(containerOperations, times(1)).pullImageAsyncIfNeeded(eq(containerImage));
+ inOrder.verify(containerOperations, times(1)).pullImageAsyncIfNeeded(eq(dockerImage));
inOrder.verify(containerOperations, times(1)).createContainer(eq(context), any(), any());
inOrder.verify(containerOperations, times(1)).startContainer(eq(context));
inOrder.verify(aclMaintainer, times(1)).converge(eq(context));
inOrder.verify(containerOperations, times(1)).resumeNode(eq(context));
inOrder.verify(healthChecker, times(1)).verifyHealth(eq(context));
inOrder.verify(nodeRepository).updateNodeAttributes(
- hostName, new NodeAttributes().withDockerImage(containerImage).withVespaVersion(containerImage.tagAsVersion()));
+ hostName, new NodeAttributes().withDockerImage(dockerImage).withVespaVersion(dockerImage.tagAsVersion()));
inOrder.verify(orchestrator, never()).resume(hostName);
}
@Test
public void containerIsNotStoppedIfNewImageMustBePulled() {
- final ContainerImage newContainerImage = ContainerImage.fromString("new-image");
+ final DockerImage newDockerImage = DockerImage.fromString("new-image");
final NodeSpec node = nodeBuilder(NodeState.active)
- .wantedDockerImage(newContainerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(newDockerImage).currentDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
.build();
NodeAgentContext context = createContext(node);
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(nodeRepository.getOptionalNode(hostName)).thenReturn(Optional.of(node));
when(containerOperations.pullImageAsyncIfNeeded(any())).thenReturn(true);
@@ -194,18 +194,18 @@ public class NodeAgentImplTest {
verify(containerOperations, never()).removeContainer(eq(context), any());
final InOrder inOrder = inOrder(containerOperations);
- inOrder.verify(containerOperations, times(1)).pullImageAsyncIfNeeded(eq(newContainerImage));
+ inOrder.verify(containerOperations, times(1)).pullImageAsyncIfNeeded(eq(newDockerImage));
}
@Test
public void containerIsUpdatedIfCpuChanged() {
NodeSpec.Builder specBuilder = nodeBuilder(NodeState.active)
- .wantedDockerImage(containerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
.allowedToBeDown(false);
NodeAgentContext firstContext = createContext(specBuilder.build());
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(containerOperations.pullImageAsyncIfNeeded(any())).thenReturn(true);
@@ -221,7 +221,7 @@ public class NodeAgentImplTest {
NodeAgentContext thirdContext = new NodeAgentContextImpl.Builder(specBuilder.vcpu(5).build()).cpuSpeedUp(1.25).build();
nodeAgent.doConverge(thirdContext);
ContainerResources resourcesAfterThird = ContainerResources.from(0, 4, 16);
- mockGetContainer(containerImage, resourcesAfterThird, true);
+ mockGetContainer(dockerImage, resourcesAfterThird, true);
inOrder.verify(orchestrator).suspend(any(String.class));
inOrder.verify(containerOperations).updateContainer(eq(thirdContext), eq(resourcesAfterThird));
@@ -247,12 +247,12 @@ public class NodeAgentImplTest {
@Test
public void containerIsRecreatedIfMemoryChanged() {
NodeSpec.Builder specBuilder = nodeBuilder(NodeState.active)
- .wantedDockerImage(containerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
.wantedRestartGeneration(2).currentRestartGeneration(1);
NodeAgentContext firstContext = createContext(specBuilder.build());
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(containerOperations.pullImageAsyncIfNeeded(any())).thenReturn(true);
@@ -260,7 +260,7 @@ public class NodeAgentImplTest {
NodeAgentContext secondContext = createContext(specBuilder.memoryGb(20).build());
nodeAgent.doConverge(secondContext);
ContainerResources resourcesAfterThird = ContainerResources.from(0, 2, 20);
- mockGetContainer(containerImage, resourcesAfterThird, true);
+ mockGetContainer(dockerImage, resourcesAfterThird, true);
InOrder inOrder = inOrder(orchestrator, containerOperations, nodeRepository);
inOrder.verify(orchestrator).resume(any(String.class));
@@ -278,13 +278,13 @@ public class NodeAgentImplTest {
@Test
public void noRestartIfOrchestratorSuspendFails() {
final NodeSpec node = nodeBuilder(NodeState.active)
- .wantedDockerImage(containerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
.wantedRestartGeneration(2).currentRestartGeneration(1)
.build();
NodeAgentContext context = createContext(node);
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
doThrow(new OrchestratorException("Denied")).when(orchestrator).suspend(eq(hostName));
try {
@@ -305,16 +305,16 @@ public class NodeAgentImplTest {
public void recreatesContainerIfRebootWanted() {
final long wantedRebootGeneration = 2;
final NodeSpec node = nodeBuilder(NodeState.active)
- .wantedDockerImage(containerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
.wantedRebootGeneration(wantedRebootGeneration).currentRebootGeneration(1)
.build();
NodeAgentContext context = createContext(node);
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(nodeRepository.getOptionalNode(hostName)).thenReturn(Optional.of(node));
- when(containerOperations.pullImageAsyncIfNeeded(eq(containerImage))).thenReturn(false);
+ when(containerOperations.pullImageAsyncIfNeeded(eq(dockerImage))).thenReturn(false);
doThrow(new ConvergenceException("Connection refused")).doNothing()
.when(healthChecker).verifyHealth(eq(context));
@@ -343,12 +343,12 @@ public class NodeAgentImplTest {
@Test
public void failedNodeRunningContainerShouldStillBeRunning() {
final NodeSpec node = nodeBuilder(NodeState.failed)
- .wantedDockerImage(containerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
.build();
NodeAgentContext context = createContext(node);
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(nodeRepository.getOptionalNode(hostName)).thenReturn(Optional.of(node));
@@ -384,12 +384,12 @@ public class NodeAgentImplTest {
@Test
public void inactiveNodeRunningContainerShouldStillBeRunning() {
final NodeSpec node = nodeBuilder(NodeState.inactive)
- .wantedDockerImage(containerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
.build();
NodeAgentContext context = createContext(node);
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(nodeRepository.getOptionalNode(hostName)).thenReturn(Optional.of(node));
@@ -405,7 +405,7 @@ public class NodeAgentImplTest {
@Test
public void reservedNodeDoesNotUpdateNodeRepoWithVersion() {
final NodeSpec node = nodeBuilder(NodeState.reserved)
- .wantedDockerImage(containerImage)
+ .wantedDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion)
.build();
@@ -421,13 +421,13 @@ public class NodeAgentImplTest {
private void nodeRunningContainerIsTakenDownAndCleanedAndRecycled(NodeState nodeState, Optional<Long> wantedRestartGeneration) {
NodeSpec.Builder builder = nodeBuilder(nodeState)
- .wantedDockerImage(containerImage).currentDockerImage(containerImage);
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage);
wantedRestartGeneration.ifPresent(restartGeneration -> builder
.wantedRestartGeneration(restartGeneration).currentRestartGeneration(restartGeneration));
NodeSpec node = builder.build();
NodeAgentContext context = createContext(node);
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(nodeRepository.getOptionalNode(hostName)).thenReturn(Optional.of(node));
@@ -448,7 +448,7 @@ public class NodeAgentImplTest {
verify(orchestrator, never()).suspend(any(String.class));
// current Docker image and vespa version should be cleared
verify(nodeRepository, times(1)).updateNodeAttributes(
- eq(hostName), eq(new NodeAttributes().withDockerImage(ContainerImage.EMPTY).withVespaVersion(Version.emptyVersion)));
+ eq(hostName), eq(new NodeAttributes().withDockerImage(DockerImage.EMPTY).withVespaVersion(Version.emptyVersion)));
}
@Test
@@ -464,7 +464,7 @@ public class NodeAgentImplTest {
@Test
public void provisionedNodeIsMarkedAsDirty() {
final NodeSpec node = nodeBuilder(NodeState.provisioned)
- .wantedDockerImage(containerImage)
+ .wantedDockerImage(dockerImage)
.build();
NodeAgentContext context = createContext(node);
@@ -478,12 +478,12 @@ public class NodeAgentImplTest {
@Test
public void testRestartDeadContainerAfterNodeAdminRestart() {
final NodeSpec node = nodeBuilder(NodeState.active)
- .currentDockerImage(containerImage).wantedDockerImage(containerImage)
+ .currentDockerImage(dockerImage).wantedDockerImage(dockerImage)
.currentVespaVersion(vespaVersion)
.build();
NodeAgentContext context = createContext(node);
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, false);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, false);
when(nodeRepository.getOptionalNode(eq(hostName))).thenReturn(Optional.of(node));
@@ -497,14 +497,14 @@ public class NodeAgentImplTest {
@Test
public void resumeProgramRunsUntilSuccess() {
final NodeSpec node = nodeBuilder(NodeState.active)
- .wantedDockerImage(containerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.currentVespaVersion(vespaVersion)
.wantedRestartGeneration(1).currentRestartGeneration(1)
.allowedToBeDown(true)
.build();
NodeAgentContext context = createContext(node);
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(nodeRepository.getOptionalNode(eq(hostName))).thenReturn(Optional.of(node));
@@ -533,7 +533,7 @@ public class NodeAgentImplTest {
@Test
public void start_container_subtask_failure_leads_to_container_restart() {
final NodeSpec node = nodeBuilder(NodeState.active)
- .wantedDockerImage(containerImage)
+ .wantedDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion)
.wantedRestartGeneration(1).currentRestartGeneration(1)
.build();
@@ -541,7 +541,7 @@ public class NodeAgentImplTest {
NodeAgentContext context = createContext(node);
NodeAgentImpl nodeAgent = spy(makeNodeAgent(null, false));
- when(containerOperations.pullImageAsyncIfNeeded(eq(containerImage))).thenReturn(false);
+ when(containerOperations.pullImageAsyncIfNeeded(eq(dockerImage))).thenReturn(false);
doThrow(new DockerException("Failed to set up network")).doNothing().when(containerOperations).startContainer(eq(context));
try {
@@ -556,7 +556,7 @@ public class NodeAgentImplTest {
// The docker container was actually started and is running, but subsequent exec calls to set up
// networking failed
- mockGetContainer(containerImage, true);
+ mockGetContainer(dockerImage, true);
nodeAgent.doConverge(context);
verify(containerOperations, times(1)).removeContainer(eq(context), any());
@@ -569,7 +569,7 @@ public class NodeAgentImplTest {
public void testRunningConfigServer() {
final NodeSpec node = nodeBuilder(NodeState.active)
.type(NodeType.config)
- .wantedDockerImage(containerImage)
+ .wantedDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion)
.allowedToBeDown(true)
.build();
@@ -578,7 +578,7 @@ public class NodeAgentImplTest {
NodeAgentImpl nodeAgent = makeNodeAgent(null, false);
when(nodeRepository.getOptionalNode(hostName)).thenReturn(Optional.of(node));
- when(containerOperations.pullImageAsyncIfNeeded(eq(containerImage))).thenReturn(false);
+ when(containerOperations.pullImageAsyncIfNeeded(eq(dockerImage))).thenReturn(false);
nodeAgent.doConverge(context);
@@ -586,13 +586,13 @@ public class NodeAgentImplTest {
verify(orchestrator, never()).suspend(any(String.class));
final InOrder inOrder = inOrder(containerOperations, orchestrator, nodeRepository, aclMaintainer);
- inOrder.verify(containerOperations, times(1)).pullImageAsyncIfNeeded(eq(containerImage));
+ inOrder.verify(containerOperations, times(1)).pullImageAsyncIfNeeded(eq(dockerImage));
inOrder.verify(containerOperations, times(1)).createContainer(eq(context), any(), any());
inOrder.verify(containerOperations, times(1)).startContainer(eq(context));
inOrder.verify(aclMaintainer, times(1)).converge(eq(context));
inOrder.verify(containerOperations, times(1)).resumeNode(eq(context));
inOrder.verify(nodeRepository).updateNodeAttributes(
- hostName, new NodeAttributes().withDockerImage(containerImage).withVespaVersion(containerImage.tagAsVersion()));
+ hostName, new NodeAttributes().withDockerImage(dockerImage).withVespaVersion(dockerImage.tagAsVersion()));
inOrder.verify(orchestrator).resume(hostName);
}
@@ -610,7 +610,7 @@ public class NodeAgentImplTest {
@Test
public void initial_cpu_cap_test() {
NodeSpec.Builder specBuilder = nodeBuilder(NodeState.active)
- .wantedDockerImage(containerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion);
NodeAgentContext context = createContext(specBuilder.build());
@@ -662,13 +662,13 @@ public class NodeAgentImplTest {
@Test
public void resumes_normally_if_container_is_already_capped_on_start() {
NodeSpec.Builder specBuilder = nodeBuilder(NodeState.active)
- .wantedDockerImage(containerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.wantedVespaVersion(vespaVersion).currentVespaVersion(vespaVersion)
.wantedRestartGeneration(1).currentRestartGeneration(1);
NodeAgentContext context = createContext(specBuilder.build());
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true, Duration.ofSeconds(30));
- mockGetContainer(containerImage, ContainerResources.from(0, 2, 16), true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true, Duration.ofSeconds(30));
+ mockGetContainer(dockerImage, ContainerResources.from(0, 2, 16), true);
InOrder inOrder = inOrder(orchestrator, containerOperations);
@@ -687,14 +687,14 @@ public class NodeAgentImplTest {
.hostname(hostName)
.type(NodeType.tenant)
.flavor("docker")
- .wantedDockerImage(containerImage).currentDockerImage(containerImage)
+ .wantedDockerImage(dockerImage).currentDockerImage(dockerImage)
.state(nodeState);
owner.ifPresent(nodeBuilder::owner);
NodeSpec node = nodeBuilder.build();
NodeAgentContext context = createContext(node);
- NodeAgentImpl nodeAgent = makeNodeAgent(containerImage, true);
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(nodeRepository.getOptionalNode(eq(hostName))).thenReturn(Optional.of(node));
@@ -711,12 +711,12 @@ public class NodeAgentImplTest {
}
}
- private NodeAgentImpl makeNodeAgent(ContainerImage containerImage, boolean isRunning) {
- return makeNodeAgent(containerImage, isRunning, Duration.ofSeconds(-1));
+ private NodeAgentImpl makeNodeAgent(DockerImage dockerImage, boolean isRunning) {
+ return makeNodeAgent(dockerImage, isRunning, Duration.ofSeconds(-1));
}
- private NodeAgentImpl makeNodeAgent(ContainerImage containerImage, boolean isRunning, Duration warmUpDuration) {
- mockGetContainer(containerImage, isRunning);
+ private NodeAgentImpl makeNodeAgent(DockerImage dockerImage, boolean isRunning, Duration warmUpDuration) {
+ mockGetContainer(dockerImage, isRunning);
doAnswer(invoc -> {
NodeAgentContext context = invoc.getArgument(0, NodeAgentContext.class);
ContainerResources resources = invoc.getArgument(2, ContainerResources.class);
@@ -736,19 +736,19 @@ public class NodeAgentImplTest {
Optional.of(healthChecker), clock, warmUpDuration);
}
- private void mockGetContainer(ContainerImage containerImage, boolean isRunning) {
- mockGetContainer(containerImage, ContainerResources.from(0, resources.vcpu(), resources.memoryGb()), isRunning);
+ private void mockGetContainer(DockerImage dockerImage, boolean isRunning) {
+ mockGetContainer(dockerImage, ContainerResources.from(0, resources.vcpu(), resources.memoryGb()), isRunning);
}
- private void mockGetContainer(ContainerImage containerImage, ContainerResources containerResources, boolean isRunning) {
+ private void mockGetContainer(DockerImage dockerImage, ContainerResources containerResources, boolean isRunning) {
doAnswer(invoc -> {
NodeAgentContext context = invoc.getArgument(0);
if (!hostName.equals(context.hostname().value()))
throw new IllegalArgumentException();
- return containerImage != null ?
+ return dockerImage != null ?
Optional.of(new Container(
hostName,
- containerImage,
+ dockerImage,
containerResources,
ContainerName.fromHostname(hostName),
isRunning ? Container.State.RUNNING : Container.State.EXITED,