aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2020-10-20 13:08:31 +0200
committerMartin Polden <mpolden@mpolden.no>2020-10-20 15:56:36 +0200
commita6b5313558ef76c6f1b63dc7216c22b6e6382e7d (patch)
treef3e448c8366ecc9c15fa5b6c8539b4480e7f6124 /node-repository
parent09b47ec03d52b66b216adfa1caed19d1310d7f17 (diff)
Rename DockerImages -> ContainerImages
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java11
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java18
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeContainerImagesSerializer.java (renamed from node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeDockerImagesSerializer.java)10
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImages.java83
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/DockerImages.java83
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java4
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiHandler.java12
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/UpgradeResponse.java10
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeContainerImagesSerializerTest.java (renamed from node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeDockerImagesSerializerTest.java)4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java (renamed from node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerImagesTest.java)10
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiTest.java10
11 files changed, 126 insertions, 129 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
index ff0fc9f66ea..54caddc9572 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
@@ -39,7 +39,7 @@ import com.yahoo.vespa.hosted.provision.persistence.CuratorDatabaseClient;
import com.yahoo.vespa.hosted.provision.persistence.DnsNameResolver;
import com.yahoo.vespa.hosted.provision.persistence.JobControlFlags;
import com.yahoo.vespa.hosted.provision.persistence.NameResolver;
-import com.yahoo.vespa.hosted.provision.provisioning.DockerImages;
+import com.yahoo.vespa.hosted.provision.provisioning.ContainerImages;
import com.yahoo.vespa.hosted.provision.provisioning.FirmwareChecks;
import com.yahoo.vespa.hosted.provision.provisioning.HostResourcesCalculator;
import com.yahoo.vespa.hosted.provision.provisioning.ProvisionServiceProvider;
@@ -107,7 +107,7 @@ public class NodeRepository extends AbstractComponent {
private final OsVersions osVersions;
private final InfrastructureVersions infrastructureVersions;
private final FirmwareChecks firmwareChecks;
- private final DockerImages dockerImages;
+ private final ContainerImages containerImages;
private final JobControl jobControl;
private final Applications applications;
private final boolean canProvisionHosts;
@@ -163,7 +163,7 @@ public class NodeRepository extends AbstractComponent {
this.osVersions = new OsVersions(this);
this.infrastructureVersions = new InfrastructureVersions(db);
this.firmwareChecks = new FirmwareChecks(db, clock);
- this.dockerImages = new DockerImages(db, dockerImage);
+ this.containerImages = new ContainerImages(db, dockerImage);
this.jobControl = new JobControl(new JobControlFlags(db, flagSource));
this.applications = new Applications(db);
this.canProvisionHosts = canProvisionHosts;
@@ -188,9 +188,6 @@ public class NodeRepository extends AbstractComponent {
/** Returns the curator database client used by this */
public CuratorDatabaseClient database() { return db; }
- /** Returns the Docker image to use for given node */
- public DockerImage dockerImage(Node node) { return dockerImages.dockerImageFor(node.type()); }
-
/** @return The name resolver used to resolve hostname and ip addresses */
public NameResolver nameResolver() { return nameResolver; }
@@ -204,7 +201,7 @@ public class NodeRepository extends AbstractComponent {
public FirmwareChecks firmwareChecks() { return firmwareChecks; }
/** Returns the docker images to use for nodes in this. */
- public DockerImages dockerImages() { return dockerImages; }
+ public ContainerImages containerImages() { return containerImages; }
/** Returns the status of maintenance jobs managed by this. */
public JobControl jobControl() { return jobControl; }
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java
index 91c683d139e..e6564b52216 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java
@@ -66,7 +66,7 @@ public class CuratorDatabaseClient {
private static final Path inactiveJobsPath = root.append("inactiveJobs");
private static final Path infrastructureVersionsPath = root.append("infrastructureVersions");
private static final Path osVersionsPath = root.append("osVersions");
- private static final Path dockerImagesPath = root.append("dockerImages");
+ private static final Path containerImagesPath = root.append("dockerImages");
private static final Path firmwareCheckPath = root.append("firmwareCheck");
private static final Duration defaultLockTimeout = Duration.ofMinutes(2);
@@ -99,7 +99,7 @@ public class CuratorDatabaseClient {
db.create(inactiveJobsPath);
db.create(infrastructureVersionsPath);
db.create(osVersionsPath);
- db.create(dockerImagesPath);
+ db.create(containerImagesPath);
db.create(firmwareCheckPath);
db.create(loadBalancersPath);
provisionIndexCounter.initialize(100);
@@ -432,21 +432,21 @@ public class CuratorDatabaseClient {
return db.lock(lockPath.append("osVersionsLock"), defaultLockTimeout);
}
- // Docker images -----------------------------------------------------------
+ // Container images -----------------------------------------------------------
- public Map<NodeType, DockerImage> readDockerImages() {
- return read(dockerImagesPath, NodeTypeDockerImagesSerializer::fromJson).orElseGet(TreeMap::new);
+ public Map<NodeType, DockerImage> readContainerImages() {
+ return read(containerImagesPath, NodeTypeContainerImagesSerializer::fromJson).orElseGet(TreeMap::new);
}
- public void writeDockerImages(Map<NodeType, DockerImage> dockerImages) {
+ public void writeContainerImages(Map<NodeType, DockerImage> images) {
NestedTransaction transaction = new NestedTransaction();
CuratorTransaction curatorTransaction = db.newCuratorTransactionIn(transaction);
- curatorTransaction.add(CuratorOperations.setData(dockerImagesPath.getAbsolute(),
- NodeTypeDockerImagesSerializer.toJson(dockerImages)));
+ curatorTransaction.add(CuratorOperations.setData(containerImagesPath.getAbsolute(),
+ NodeTypeContainerImagesSerializer.toJson(images)));
transaction.commit();
}
- public Lock lockDockerImages() {
+ public Lock lockContainerImages() {
return db.lock(lockPath.append("dockerImagesLock"), defaultLockTimeout);
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeDockerImagesSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeContainerImagesSerializer.java
index 6615dff24e5..058b5a45d8c 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeDockerImagesSerializer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeContainerImagesSerializer.java
@@ -19,9 +19,9 @@ import java.util.TreeMap;
*
* @author freva
*/
-public class NodeTypeDockerImagesSerializer {
+public class NodeTypeContainerImagesSerializer {
- private NodeTypeDockerImagesSerializer() {}
+ private NodeTypeContainerImagesSerializer() {}
public static byte[] toJson(Map<NodeType, DockerImage> dockerImages) {
Slime slime = new Slime();
@@ -36,11 +36,11 @@ public class NodeTypeDockerImagesSerializer {
}
public static Map<NodeType, DockerImage> fromJson(byte[] data) {
- Map<NodeType, DockerImage> dockerImages = new TreeMap<>(); // Use TreeMap to sort by node type
+ Map<NodeType, DockerImage> images = new TreeMap<>(); // Use TreeMap to sort by node type
Inspector inspector = SlimeUtils.jsonToSlime(data).get();
inspector.traverse((ObjectTraverser) (key, value) ->
- dockerImages.put(NodeSerializer.nodeTypeFromString(key), DockerImage.fromString(value.asString())));
- return dockerImages;
+ images.put(NodeSerializer.nodeTypeFromString(key), DockerImage.fromString(value.asString())));
+ return images;
}
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImages.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImages.java
new file mode 100644
index 00000000000..a9f0a16e517
--- /dev/null
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImages.java
@@ -0,0 +1,83 @@
+// Copyright 2020 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.hosted.provision.provisioning;
+
+import com.google.common.base.Supplier;
+import com.google.common.base.Suppliers;
+import com.yahoo.config.provision.DockerImage;
+import com.yahoo.config.provision.NodeType;
+import com.yahoo.vespa.curator.Lock;
+import com.yahoo.vespa.hosted.provision.persistence.CuratorDatabaseClient;
+
+import java.time.Duration;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Optional;
+import java.util.concurrent.TimeUnit;
+import java.util.logging.Logger;
+
+/**
+ * Multi-thread safe class to get and set container images for given node types. Images are stored in ZooKeeper so that
+ * nodes receive the same image from all config servers.
+ *
+ * @author freva
+ */
+public class ContainerImages {
+
+ private static final Duration defaultCacheTtl = Duration.ofMinutes(1);
+ private static final Logger log = Logger.getLogger(ContainerImages.class.getName());
+
+ private final CuratorDatabaseClient db;
+ private final DockerImage defaultImage;
+ private final Duration cacheTtl;
+
+ /**
+ * The container image is read on every request to /nodes/v2/node/[fqdn]. Cache current images to avoid
+ * unnecessary ZK reads. When images change, some nodes may need to wait for TTL until they see the new image,
+ * this is fine.
+ */
+ private volatile Supplier<Map<NodeType, DockerImage>> images;
+
+ public ContainerImages(CuratorDatabaseClient db, DockerImage defaultImage) {
+ this(db, defaultImage, defaultCacheTtl);
+ }
+
+ ContainerImages(CuratorDatabaseClient db, DockerImage defaultImage, Duration cacheTtl) {
+ this.db = db;
+ this.defaultImage = defaultImage;
+ this.cacheTtl = cacheTtl;
+ createCache();
+ }
+
+ private void createCache() {
+ this.images = Suppliers.memoizeWithExpiration(() -> Collections.unmodifiableMap(db.readContainerImages()),
+ cacheTtl.toMillis(), TimeUnit.MILLISECONDS);
+ }
+
+ /** Returns the current images for each node type */
+ public Map<NodeType, DockerImage> getImages() {
+ return images.get();
+ }
+
+ /** Returns the current docker image for given node type, or the type for corresponding child nodes
+ * if it is a Docker host, or default */
+ public DockerImage imageFor(NodeType type) {
+ NodeType typeToUseForLookup = type.isHost() ? type.childNodeType() : type;
+ return getImages().getOrDefault(typeToUseForLookup, defaultImage);
+ }
+
+ /** Set the docker image for nodes of given type */
+ public void setImage(NodeType nodeType, Optional<DockerImage> image) {
+ if (nodeType.isHost()) {
+ throw new IllegalArgumentException("Setting container image for " + nodeType + " nodes is unsupported");
+ }
+ try (Lock lock = db.lockContainerImages()) {
+ Map<NodeType, DockerImage> images = db.readContainerImages();
+ image.ifPresentOrElse(img -> images.put(nodeType, img),
+ () -> images.remove(nodeType));
+ db.writeContainerImages(images);
+ createCache(); // Throw away current cache
+ log.info("Set container image for " + nodeType + " nodes to " + image.map(DockerImage::asString).orElse(null));
+ }
+ }
+
+}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/DockerImages.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/DockerImages.java
deleted file mode 100644
index e89b0f9669d..00000000000
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/DockerImages.java
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright 2020 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.hosted.provision.provisioning;
-
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.yahoo.config.provision.DockerImage;
-import com.yahoo.config.provision.NodeType;
-import com.yahoo.vespa.curator.Lock;
-import com.yahoo.vespa.hosted.provision.persistence.CuratorDatabaseClient;
-
-import java.time.Duration;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Optional;
-import java.util.concurrent.TimeUnit;
-import java.util.logging.Logger;
-
-/**
- * Multi-thread safe class to get and set container images for given node types. Images are stored in ZooKeeper so that
- * nodes receive the same image from all config servers.
- *
- * @author freva
- */
-public class DockerImages {
-
- private static final Duration defaultCacheTtl = Duration.ofMinutes(1);
- private static final Logger log = Logger.getLogger(DockerImages.class.getName());
-
- private final CuratorDatabaseClient db;
- private final DockerImage defaultImage;
- private final Duration cacheTtl;
-
- /**
- * Docker image is read on every request to /nodes/v2/node/[fqdn]. Cache current getDockerImages to avoid
- * unnecessary ZK reads. When getDockerImages change, some nodes may need to wait for TTL until they see the new target,
- * this is fine.
- */
- private volatile Supplier<Map<NodeType, DockerImage>> dockerImages;
-
- public DockerImages(CuratorDatabaseClient db, DockerImage defaultImage) {
- this(db, defaultImage, defaultCacheTtl);
- }
-
- DockerImages(CuratorDatabaseClient db, DockerImage defaultImage, Duration cacheTtl) {
- this.db = db;
- this.defaultImage = defaultImage;
- this.cacheTtl = cacheTtl;
- createCache();
- }
-
- private void createCache() {
- this.dockerImages = Suppliers.memoizeWithExpiration(() -> Collections.unmodifiableMap(db.readDockerImages()),
- cacheTtl.toMillis(), TimeUnit.MILLISECONDS);
- }
-
- /** Returns the current docker images for each node type */
- public Map<NodeType, DockerImage> getDockerImages() {
- return dockerImages.get();
- }
-
- /** Returns the current docker image for given node type, or the type for corresponding child nodes
- * if it is a Docker host, or default */
- public DockerImage dockerImageFor(NodeType type) {
- NodeType typeToUseForLookup = type.isHost() ? type.childNodeType() : type;
- return getDockerImages().getOrDefault(typeToUseForLookup, defaultImage);
- }
-
- /** Set the docker image for nodes of given type */
- public void setDockerImage(NodeType nodeType, Optional<DockerImage> dockerImage) {
- if (nodeType.isHost()) {
- throw new IllegalArgumentException("Setting docker image for " + nodeType + " nodes is unsupported");
- }
- try (Lock lock = db.lockDockerImages()) {
- Map<NodeType, DockerImage> dockerImages = db.readDockerImages();
- dockerImage.ifPresentOrElse(image -> dockerImages.put(nodeType, image),
- () -> dockerImages.remove(nodeType));
- db.writeDockerImages(dockerImages);
- createCache(); // Throw away current cache
- log.info("Set docker image for " + nodeType + " nodes to " + dockerImage.map(DockerImage::asString).orElse(null));
- }
- }
-
-}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java
index 0137bee5fbd..47ee1be7651 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesResponse.java
@@ -158,7 +158,7 @@ class NodesResponse extends HttpResponse {
object.setLong("restartGeneration", allocation.restartGeneration().wanted());
object.setLong("currentRestartGeneration", allocation.restartGeneration().current());
object.setString("wantedDockerImage", allocation.membership().cluster().dockerImage()
- .orElseGet(() -> nodeRepository.dockerImage(node).withTag(allocation.membership().cluster().vespaVersion()).asString()));
+ .orElseGet(() -> nodeRepository.containerImages().imageFor(node.type()).withTag(allocation.membership().cluster().vespaVersion()).asString()));
object.setString("wantedVespaVersion", allocation.membership().cluster().vespaVersion().toFullString());
NodeResourcesSerializer.toSlime(allocation.requestedResources(), object.setObject("requestedResources"));
allocation.networkPorts().ifPresent(ports -> NetworkPortsSerializer.toSlime(ports, object.setArray("networkPorts")));
@@ -222,7 +222,7 @@ class NodesResponse extends HttpResponse {
.or(() -> Optional.of(node)
.filter(n -> n.flavor().getType() != Flavor.Type.DOCKER_CONTAINER)
.flatMap(n -> n.status().vespaVersion()
- .map(version -> nodeRepository.dockerImage(n).withTag(version))));
+ .map(version -> nodeRepository.containerImages().imageFor(n.type()).withTag(version))));
}
private void ipAddressesToSlime(Set<String> ipAddresses, Cursor array) {
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiHandler.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiHandler.java
index a2d599eab6e..5d19271d2a7 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiHandler.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiHandler.java
@@ -118,7 +118,7 @@ public class NodesV2ApiHandler extends LoggingRequestHandler {
if (pathS.equals( "/nodes/v2/command/")) return new ResourceResponse(request.getUri(), "restart", "reboot");
if (pathS.equals( "/nodes/v2/locks")) return new LocksResponse();
if (pathS.equals( "/nodes/v2/maintenance/")) return new JobsResponse(nodeRepository.jobControl());
- if (pathS.equals( "/nodes/v2/upgrade/")) return new UpgradeResponse(nodeRepository.infrastructureVersions(), nodeRepository.osVersions(), nodeRepository.dockerImages());
+ if (pathS.equals( "/nodes/v2/upgrade/")) return new UpgradeResponse(nodeRepository.infrastructureVersions(), nodeRepository.osVersions(), nodeRepository.containerImages());
if (pathS.startsWith("/nodes/v2/capacity")) return new HostCapacityResponse(nodeRepository, request);
if (path.matches("/nodes/v2/application")) return applicationList(request.getUri());
if (path.matches("/nodes/v2/application/{applicationId}")) return application(path.get("applicationId"), request.getUri());
@@ -363,7 +363,7 @@ public class NodesV2ApiHandler extends LoggingRequestHandler {
boolean force = inspector.field("force").asBool();
Inspector versionField = inspector.field("version");
Inspector osVersionField = inspector.field("osVersion");
- Inspector dockerImageField = inspector.field("dockerImage");
+ Inspector containerImageField = inspector.field("dockerImage");
Inspector upgradeBudgetField = inspector.field("upgradeBudget");
if (versionField.valid()) {
@@ -395,12 +395,12 @@ public class NodesV2ApiHandler extends LoggingRequestHandler {
}
}
- if (dockerImageField.valid()) {
- Optional<DockerImage> dockerImage = Optional.of(dockerImageField.asString())
+ if (containerImageField.valid()) {
+ Optional<DockerImage> dockerImage = Optional.of(containerImageField.asString())
.filter(s -> !s.isEmpty())
.map(DockerImage::fromString);
- nodeRepository.dockerImages().setDockerImage(nodeType, dockerImage);
- messageParts.add("docker image to " + dockerImage.map(DockerImage::asString).orElse(null));
+ nodeRepository.containerImages().setImage(nodeType, dockerImage);
+ messageParts.add("container image to " + dockerImage.map(DockerImage::asString).orElse(null));
}
if (messageParts.isEmpty()) {
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/UpgradeResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/UpgradeResponse.java
index 1082e9cce60..b34f1b1a875 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/UpgradeResponse.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/UpgradeResponse.java
@@ -6,7 +6,7 @@ import com.yahoo.slime.Cursor;
import com.yahoo.slime.JsonFormat;
import com.yahoo.slime.Slime;
import com.yahoo.vespa.hosted.provision.maintenance.InfrastructureVersions;
-import com.yahoo.vespa.hosted.provision.provisioning.DockerImages;
+import com.yahoo.vespa.hosted.provision.provisioning.ContainerImages;
import com.yahoo.vespa.hosted.provision.os.OsVersions;
import java.io.IOException;
@@ -21,13 +21,13 @@ public class UpgradeResponse extends HttpResponse {
private final InfrastructureVersions infrastructureVersions;
private final OsVersions osVersions;
- private final DockerImages dockerImages;
+ private final ContainerImages containerImages;
- public UpgradeResponse(InfrastructureVersions infrastructureVersions, OsVersions osVersions, DockerImages dockerImages) {
+ public UpgradeResponse(InfrastructureVersions infrastructureVersions, OsVersions osVersions, ContainerImages containerImages) {
super(200);
this.infrastructureVersions = infrastructureVersions;
this.osVersions = osVersions;
- this.dockerImages = dockerImages;
+ this.containerImages = containerImages;
}
@Override
@@ -43,7 +43,7 @@ public class UpgradeResponse extends HttpResponse {
Cursor dockerImagesObject = root.setObject("dockerImages");
- dockerImages.getDockerImages().forEach((nodeType, image) -> dockerImagesObject.setString(nodeType.name(), image.asString()));
+ containerImages.getImages().forEach((nodeType, image) -> dockerImagesObject.setString(nodeType.name(), image.asString()));
new JsonFormat(true).encode(stream, slime);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeDockerImagesSerializerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeContainerImagesSerializerTest.java
index 9bfcf67324a..4d4669f0b42 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeDockerImagesSerializerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeContainerImagesSerializerTest.java
@@ -13,7 +13,7 @@ import static org.junit.Assert.assertEquals;
/**
* @author freva
*/
-public class NodeTypeDockerImagesSerializerTest {
+public class NodeTypeContainerImagesSerializerTest {
@Test
public void test_serialization() {
@@ -21,7 +21,7 @@ public class NodeTypeDockerImagesSerializerTest {
images.put(NodeType.host, DockerImage.fromString("docker.domain.tld/my/repo:1.2.3"));
images.put(NodeType.confighost, DockerImage.fromString("docker.domain.tld/my/image:2.1"));
- Map<NodeType, DockerImage> serialized = NodeTypeDockerImagesSerializer.fromJson(NodeTypeDockerImagesSerializer.toJson(images));
+ Map<NodeType, DockerImage> serialized = NodeTypeContainerImagesSerializer.fromJson(NodeTypeContainerImagesSerializer.toJson(images));
assertEquals(images, serialized);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerImagesTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java
index d5437296620..320feed5d66 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerImagesTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java
@@ -14,7 +14,7 @@ import static org.junit.Assert.assertEquals;
/**
* @author mpolden
*/
-public class DockerImagesTest {
+public class ContainerImagesTest {
@Test
public void image_selection() {
@@ -22,14 +22,14 @@ public class DockerImagesTest {
var tester = new ProvisioningTester.Builder().flagSource(flagSource).build();
var proxyImage = DockerImage.fromString("docker-registry.domain.tld:8080/dist/proxy");
- tester.nodeRepository().dockerImages().setDockerImage(NodeType.proxy, Optional.of(proxyImage));
+ tester.nodeRepository().containerImages().setImage(NodeType.proxy, Optional.of(proxyImage));
// Host uses tenant default image (for preload purposes)
var defaultImage = DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa");
var hosts = tester.makeReadyNodes(2, "default", NodeType.host);
tester.activateTenantHosts();
for (var host : hosts) {
- assertEquals(defaultImage, tester.nodeRepository().dockerImages().dockerImageFor(host.type()));
+ assertEquals(defaultImage, tester.nodeRepository().containerImages().imageFor(host.type()));
}
// Tenant node uses tenant default image
@@ -37,14 +37,14 @@ public class DockerImagesTest {
for (var host : hosts) {
var nodes = tester.makeReadyVirtualDockerNodes(2, resources, host.hostname());
for (var node : nodes) {
- assertEquals(defaultImage, tester.nodeRepository().dockerImages().dockerImageFor(node.type()));
+ assertEquals(defaultImage, tester.nodeRepository().containerImages().imageFor(node.type()));
}
}
// Proxy host uses image used by child nodes (proxy nodes), which is overridden in this case (for preload purposes)
var proxyHosts = tester.makeReadyNodes(2, "default", NodeType.proxyhost);
for (var host : proxyHosts) {
- assertEquals(proxyImage, tester.nodeRepository().dockerImages().dockerImageFor(host.type()));
+ assertEquals(proxyImage, tester.nodeRepository().containerImages().imageFor(host.type()));
}
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiTest.java
index 9f6f5043ae8..a7bb8dfe481 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/NodesV2ApiTest.java
@@ -738,25 +738,25 @@ public class NodesV2ApiTest {
200,
"{\"message\":\"Set osVersion to null for nodes of type confighost\"}");
- // Set docker image for config and tenant
+ // Set container image for config and tenant
assertResponse(new Request("http://localhost:8080/nodes/v2/upgrade/tenant",
Utf8.toBytes("{\"dockerImage\": \"my-repo.my-domain.example:1234/repo/tenant\"}"),
Request.Method.PATCH),
- "{\"message\":\"Set docker image to my-repo.my-domain.example:1234/repo/tenant for nodes of type tenant\"}");
+ "{\"message\":\"Set container image to my-repo.my-domain.example:1234/repo/tenant for nodes of type tenant\"}");
assertResponse(new Request("http://localhost:8080/nodes/v2/upgrade/config",
Utf8.toBytes("{\"dockerImage\": \"my-repo.my-domain.example:1234/repo/image\"}"),
Request.Method.PATCH),
- "{\"message\":\"Set docker image to my-repo.my-domain.example:1234/repo/image for nodes of type config\"}");
+ "{\"message\":\"Set container image to my-repo.my-domain.example:1234/repo/image for nodes of type config\"}");
assertResponse(new Request("http://localhost:8080/nodes/v2/upgrade/"),
"{\"versions\":{\"config\":\"6.123.456\",\"confighost\":\"6.124.42\",\"controller\":\"6.123.456\"},\"osVersions\":{\"host\":\"7.5.2\"},\"dockerImages\":{\"tenant\":\"my-repo.my-domain.example:1234/repo/tenant\",\"config\":\"my-repo.my-domain.example:1234/repo/image\"}}");
- // Cannot set docker image for non docker node type
+ // Cannot set container image for non docker node type
tester.assertResponse(new Request("http://localhost:8080/nodes/v2/upgrade/confighost",
Utf8.toBytes("{\"dockerImage\": \"my-repo.my-domain.example:1234/repo/image\"}"),
Request.Method.PATCH),
400,
- "{\"error-code\":\"BAD_REQUEST\",\"message\":\"Setting docker image for confighost nodes is unsupported\"}");
+ "{\"error-code\":\"BAD_REQUEST\",\"message\":\"Setting container image for confighost nodes is unsupported\"}");
}
@Test