summaryrefslogtreecommitdiffstats
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
parente858dfe2815e6ffda326f69f1a62bcb0f4c2c3db (diff)
Avoid renaming DockerImage which is used in the config model
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java4
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java12
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java12
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java4
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java12
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/DockerImage.java (renamed from config-provisioning/src/main/java/com/yahoo/config/provision/ContainerImage.java)20
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java10
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java8
-rw-r--r--config-provisioning/src/test/java/com/yahoo/config/provision/ClusterMembershipTest.java2
-rw-r--r--config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java6
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java4
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java8
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java4
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ModelsBuilder.java8
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java4
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/PrepareParams.java16
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java6
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java6
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java8
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java4
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java4
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackageTest.java6
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/model/DeploymentData.java8
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java38
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java6
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java6
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java8
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Container.java6
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerEngine.java10
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java12
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollector.java16
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java48
-rw-r--r--docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImplTest.java6
-rw-r--r--docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollectionTest.java (renamed from docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/ContainerImageGarbageCollectionTest.java)10
-rw-r--r--docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImplTest.java6
-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
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java10
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Status.java12
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java6
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java10
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeDockerImagesSerializer.java10
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/DockerImages.java20
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodePatcher.java4
-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.java8
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java10
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeTypeDockerImagesSerializerTest.java10
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerImagesTest.java (renamed from node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java)8
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java8
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java4
75 files changed, 397 insertions, 397 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
index 62483cb9c5d..7d0228721aa 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
@@ -7,7 +7,7 @@ import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.application.api.FileRegistry;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.AthenzDomain;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.Zone;
@@ -37,7 +37,7 @@ public interface ModelContext {
default Optional<File> appDir() { return Optional.empty();}
/** The Docker image repo we want to use for images for this deployment (optional, will use default if empty) */
- default Optional<ContainerImage> wantedDockerImageRepo() { return Optional.empty(); }
+ default Optional<DockerImage> wantedDockerImageRepo() { return Optional.empty(); }
/** The Vespa version this model is built for */
Version modelVespaVersion();
diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java
index 30c17c30f6e..c52ea1ef092 100644
--- a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java
+++ b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java
@@ -23,7 +23,7 @@ import com.yahoo.config.model.application.provider.MockFileRegistry;
import com.yahoo.config.model.provision.HostsXmlProvisioner;
import com.yahoo.config.model.provision.SingleNodeProvisioner;
import com.yahoo.config.model.test.MockApplicationPackage;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Zone;
import com.yahoo.io.IOUtils;
import com.yahoo.io.reader.NamedReader;
@@ -78,7 +78,7 @@ public class DeployState implements ConfigDefinitionStore {
private final ImportedMlModels importedModels;
private final ValidationOverrides validationOverrides;
private final Version wantedNodeVespaVersion;
- private final Optional<ContainerImage> wantedDockerImageRepo;
+ private final Optional<DockerImage> wantedDockerImageRepo;
private final Instant now;
private final HostProvisioner provisioner;
private final Provisioned provisioned;
@@ -115,7 +115,7 @@ public class DeployState implements ConfigDefinitionStore {
Instant now,
Version wantedNodeVespaVersion,
boolean accessLoggingEnabledByDefault,
- Optional<ContainerImage> wantedDockerImageRepo) {
+ Optional<DockerImage> wantedDockerImageRepo) {
this.logger = deployLogger;
this.fileRegistry = fileRegistry;
this.rankProfileRegistry = rankProfileRegistry;
@@ -267,7 +267,7 @@ public class DeployState implements ConfigDefinitionStore {
public Version getWantedNodeVespaVersion() { return wantedNodeVespaVersion; }
- public Optional<ContainerImage> getWantedDockerImageRepo() { return wantedDockerImageRepo; }
+ public Optional<DockerImage> getWantedDockerImageRepo() { return wantedDockerImageRepo; }
public Instant now() { return now; }
@@ -307,7 +307,7 @@ public class DeployState implements ConfigDefinitionStore {
private Instant now = Instant.now();
private Version wantedNodeVespaVersion = Vtag.currentVersion;
private boolean accessLoggingEnabledByDefault = true;
- private Optional<ContainerImage> wantedDockerImageRepo = Optional.empty();
+ private Optional<DockerImage> wantedDockerImageRepo = Optional.empty();
public Builder applicationPackage(ApplicationPackage applicationPackage) {
this.applicationPackage = applicationPackage;
@@ -384,7 +384,7 @@ public class DeployState implements ConfigDefinitionStore {
return this;
}
- public Builder wantedDockerImageRepo(Optional<ContainerImage> dockerImageRepo) {
+ public Builder wantedDockerImageRepo(Optional<DockerImage> dockerImageRepo) {
this.wantedDockerImageRepo = dockerImageRepo;
return this;
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java
index ab813cea8c8..8f737f02dca 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java
@@ -9,7 +9,7 @@ import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterMembership;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.text.XML;
import com.yahoo.vespa.model.HostResource;
@@ -49,7 +49,7 @@ public class NodesSpecification {
private final boolean exclusive;
/** The repo part of a docker image (without tag), optional */
- private final Optional<ContainerImage> dockerImageRepo;
+ private final Optional<DockerImage> dockerImageRepo;
/** The ID of the cluster referencing this node specification, if any */
private final Optional<String> combinedId;
@@ -58,7 +58,7 @@ public class NodesSpecification {
ClusterResources max,
boolean dedicated, Version version,
boolean required, boolean canFail, boolean exclusive,
- Optional<ContainerImage> dockerImageRepo,
+ Optional<DockerImage> dockerImageRepo,
Optional<String> combinedId) {
if (max.smallerThan(min))
throw new IllegalArgumentException("Min resources must be larger or equal to max resources, but " +
@@ -84,7 +84,7 @@ public class NodesSpecification {
}
private static NodesSpecification create(boolean dedicated, boolean canFail, Version version,
- ModelElement nodesElement, Optional<ContainerImage> dockerImageRepo) {
+ ModelElement nodesElement, Optional<DockerImage> dockerImageRepo) {
var resolvedElement = resolveElement(nodesElement);
var combinedId = findCombinedId(nodesElement, resolvedElement);
var resources = toResources(resolvedElement);
@@ -370,9 +370,9 @@ public class NodesSpecification {
return new IllegalArgumentException("referenced service '" + referenceId + "' is not defined");
}
- private static Optional<ContainerImage> dockerImageToUse(ModelElement nodesElement, Optional<ContainerImage> dockerImage) {
+ private static Optional<DockerImage> dockerImageToUse(ModelElement nodesElement, Optional<DockerImage> dockerImage) {
String dockerImageFromElement = nodesElement.stringAttribute("docker-image");
- return dockerImageFromElement == null ? dockerImage : Optional.of(ContainerImage.fromString(dockerImageFromElement));
+ return dockerImageFromElement == null ? dockerImage : Optional.of(DockerImage.fromString(dockerImageFromElement));
}
/** Parses a value ("value") or value range ("[min-value, max-value]") */
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java
index 3c6550b9cd0..779b6854e21 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterMembership.java
@@ -20,7 +20,7 @@ public class ClusterMembership {
protected ClusterMembership() {}
- private ClusterMembership(String stringValue, Version vespaVersion, Optional<ContainerImage> dockerImageRepo) {
+ private ClusterMembership(String stringValue, Version vespaVersion, Optional<DockerImage> dockerImageRepo) {
String[] components = stringValue.split("/");
if (components.length < 4)
throw new RuntimeException("Could not parse '" + stringValue + "' to a cluster membership. " +
@@ -115,7 +115,7 @@ public class ClusterMembership {
return new ClusterMembership(stringValue, vespaVersion, Optional.empty());
}
- public static ClusterMembership from(String stringValue, Version vespaVersion, Optional<ContainerImage> dockerImageRepo) {
+ public static ClusterMembership from(String stringValue, Version vespaVersion, Optional<DockerImage> dockerImageRepo) {
return new ClusterMembership(stringValue, vespaVersion, dockerImageRepo);
}
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java
index 12cb150b37c..5b76163e97f 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java
@@ -22,10 +22,10 @@ public final class ClusterSpec {
private final Version vespaVersion;
private boolean exclusive;
private final Optional<Id> combinedId;
- private final Optional<ContainerImage> dockerImageRepo;
+ private final Optional<DockerImage> dockerImageRepo;
private ClusterSpec(Type type, Id id, Optional<Group> groupId, Version vespaVersion, boolean exclusive,
- Optional<Id> combinedId, Optional<ContainerImage> dockerImageRepo) {
+ Optional<Id> combinedId, Optional<DockerImage> dockerImageRepo) {
this.type = type;
this.id = id;
this.groupId = groupId;
@@ -49,7 +49,7 @@ public final class ClusterSpec {
public Id id() { return id; }
/** Returns the docker image repository part of a docker image we want this cluster to run */
- public Optional<ContainerImage> dockerImageRepo() { return dockerImageRepo; }
+ public Optional<DockerImage> dockerImageRepo() { return dockerImageRepo; }
/** Returns the docker image (repository + vespa version) we want this cluster to run */
public Optional<String> dockerImage() { return dockerImageRepo.map(repo -> repo + ":" + vespaVersion.toFullString()); }
@@ -96,7 +96,7 @@ public final class ClusterSpec {
private final boolean specification;
private Optional<Group> groupId = Optional.empty();
- private Optional<ContainerImage> dockerImageRepo = Optional.empty();
+ private Optional<DockerImage> dockerImageRepo = Optional.empty();
private Version vespaVersion;
private boolean exclusive = false;
private Optional<Id> combinedId = Optional.empty();
@@ -144,11 +144,11 @@ public final class ClusterSpec {
@Deprecated
// TODO: Remove after 7.208 is oldest version in use
public Builder dockerImageRepo(Optional<String> dockerImageRepo) {
- this.dockerImageRepo = dockerImageRepo.map(ContainerImage::fromString);
+ this.dockerImageRepo = dockerImageRepo.map(DockerImage::fromString);
return this;
}
- public Builder dockerImageRepository(Optional<ContainerImage> dockerImageRepo) {
+ public Builder dockerImageRepository(Optional<DockerImage> dockerImageRepo) {
this.dockerImageRepo = dockerImageRepo;
return this;
}
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ContainerImage.java b/config-provisioning/src/main/java/com/yahoo/config/provision/DockerImage.java
index be81102c20b..bbf65c1cd47 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/ContainerImage.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/DockerImage.java
@@ -11,14 +11,14 @@ import java.util.Optional;
*
* @author mpolden
*/
-public class ContainerImage {
+public class DockerImage {
- public static final ContainerImage EMPTY = new ContainerImage("", Optional.empty());
+ public static final DockerImage EMPTY = new DockerImage("", Optional.empty());
private final String repository;
private final Optional<String> tag;
- private ContainerImage(String repository, Optional<String> tag) {
+ private DockerImage(String repository, Optional<String> tag) {
this.repository = Objects.requireNonNull(repository, "repository must be non-null");
this.tag = Objects.requireNonNull(tag, "tag must be non-null");
}
@@ -37,8 +37,8 @@ public class ContainerImage {
}
/** Returns the Docker image tagged with the given version */
- public ContainerImage withTag(Version version) {
- return new ContainerImage(repository, Optional.of(version.toFullString()));
+ public DockerImage withTag(Version version) {
+ return new DockerImage(repository, Optional.of(version.toFullString()));
}
public String asString() {
@@ -54,7 +54,7 @@ public class ContainerImage {
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
- ContainerImage that = (ContainerImage) o;
+ DockerImage that = (DockerImage) o;
return repository.equals(that.repository) &&
tag.equals(that.tag);
}
@@ -64,16 +64,16 @@ public class ContainerImage {
return Objects.hash(repository, tag);
}
- public static ContainerImage fromString(String name) {
+ public static DockerImage fromString(String name) {
if (name.isEmpty()) return EMPTY;
int n = name.lastIndexOf(':');
- if (n < 0) return new ContainerImage(name, Optional.empty());
+ if (n < 0) return new DockerImage(name, Optional.empty());
String tag = name.substring(n + 1);
if (!tag.contains("/")) {
- return new ContainerImage(name.substring(0, n), Optional.of(tag));
+ return new DockerImage(name.substring(0, n), Optional.of(tag));
}
- return new ContainerImage(name, Optional.empty());
+ return new DockerImage(name, Optional.empty());
}
}
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java b/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java
index 18dc479948c..6bc3809bd54 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java
@@ -31,7 +31,7 @@ public class HostSpec implements Comparable<HostSpec> {
private final Optional<Version> version;
- private final Optional<ContainerImage> dockerImageRepo;
+ private final Optional<DockerImage> dockerImageRepo;
private final Optional<NetworkPorts> networkPorts;
@@ -50,7 +50,7 @@ public class HostSpec implements Comparable<HostSpec> {
ClusterMembership membership,
Optional<Version> version,
Optional<NetworkPorts> networkPorts,
- Optional<ContainerImage> dockerImageRepo) {
+ Optional<DockerImage> dockerImageRepo) {
this(hostname,
List.of(),
realResources,
@@ -70,7 +70,7 @@ public class HostSpec implements Comparable<HostSpec> {
Optional<ClusterMembership> membership,
Optional<Version> version,
Optional<NetworkPorts> networkPorts,
- Optional<ContainerImage> dockerImageRepo) {
+ Optional<DockerImage> dockerImageRepo) {
if (hostname == null || hostname.isEmpty()) throw new IllegalArgumentException("Hostname must be specified");
this.hostname = hostname;
this.aliases = List.copyOf(aliases);
@@ -178,7 +178,7 @@ public class HostSpec implements Comparable<HostSpec> {
public HostSpec(String hostname, List<String> aliases, Optional<Flavor> flavor,
Optional<ClusterMembership> membership, Optional<Version> version,
Optional<NetworkPorts> networkPorts, Optional<NodeResources> requestedResources,
- Optional<ContainerImage> dockerImageRepo) {
+ Optional<DockerImage> dockerImageRepo) {
this(hostname, aliases,
flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()),
flavor.map(f -> f.resources()).orElse(NodeResources.unspecified()),
@@ -216,7 +216,7 @@ public class HostSpec implements Comparable<HostSpec> {
/** Returns the requested resources leading to this host being provisioned, or empty if unspecified */
public Optional<NodeResources> requestedResources() { return requestedResources.asOptional(); }
- public Optional<ContainerImage> dockerImageRepo() { return dockerImageRepo; }
+ public Optional<DockerImage> dockerImageRepo() { return dockerImageRepo; }
public HostSpec withPorts(Optional<NetworkPorts> ports) {
return new HostSpec(hostname, aliases, realResources, advertisedResources, requestedResources, membership, version, ports, dockerImageRepo);
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java b/config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java
index 46dab780826..e4913643e8d 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializer.java
@@ -3,7 +3,7 @@ package com.yahoo.config.provision.serialization;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.ClusterMembership;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.NodeResources;
@@ -216,7 +216,7 @@ public class AllocatedHostsSerializer {
return ClusterMembership.from(object.field(hostSpecMembershipKey).asString(),
com.yahoo.component.Version.fromString(object.field(hostSpecVespaVersionKey).asString()),
object.field(hostSpecDockerImageRepoKey).valid()
- ? Optional.of(ContainerImage.fromString(object.field(hostSpecDockerImageRepoKey).asString()))
+ ? Optional.of(DockerImage.fromString(object.field(hostSpecDockerImageRepoKey).asString()))
: Optional.empty());
}
@@ -225,9 +225,9 @@ public class AllocatedHostsSerializer {
return Optional.of(inspector.asString());
}
- private static Optional<ContainerImage> optionalDockerImage(Inspector inspector) {
+ private static Optional<DockerImage> optionalDockerImage(Inspector inspector) {
if ( ! inspector.valid()) return Optional.empty();
- return Optional.of(ContainerImage.fromString(inspector.asString()));
+ return Optional.of(DockerImage.fromString(inspector.asString()));
}
}
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/ClusterMembershipTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/ClusterMembershipTest.java
index bf12bdb508f..71e039f6e8e 100644
--- a/config-provisioning/src/test/java/com/yahoo/config/provision/ClusterMembershipTest.java
+++ b/config-provisioning/src/test/java/com/yahoo/config/provision/ClusterMembershipTest.java
@@ -42,7 +42,7 @@ public class ClusterMembershipTest {
assertTrue(instance.cluster().dockerImageRepo().isEmpty());
}
{
- Optional<ContainerImage> dockerImageRepo = Optional.of(ContainerImage.fromString("docker.foo.com:4443/vespa/bar"));
+ Optional<DockerImage> dockerImageRepo = Optional.of(DockerImage.fromString("docker.foo.com:4443/vespa/bar"));
ClusterMembership instance = ClusterMembership.from("combined/id1/4/37/exclusive/containerId1", Vtag.currentVersion, dockerImageRepo);
ClusterMembership serialized = ClusterMembership.from(instance.stringValue(), Vtag.currentVersion, dockerImageRepo);
assertEquals(instance, serialized);
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java
index ee7ff257274..700bc389664 100644
--- a/config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java
+++ b/config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java
@@ -4,7 +4,7 @@ package com.yahoo.config.provision.serialization;
import com.yahoo.component.Version;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.ClusterMembership;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.NetworkPorts;
import com.yahoo.config.provision.NodeResources;
@@ -39,10 +39,10 @@ public class AllocatedHostsSerializerTest {
bigSlowDiskSpeedNode,
anyDiskSpeedNode,
ClusterMembership.from("container/test/0/0", Version.fromString("6.73.1"),
- Optional.of(ContainerImage.fromString("docker.foo.com:4443/vespa/bar"))),
+ Optional.of(DockerImage.fromString("docker.foo.com:4443/vespa/bar"))),
Optional.empty(),
Optional.empty(),
- Optional.of(ContainerImage.fromString("docker.foo.com:4443/vespa/bar"))));
+ Optional.of(DockerImage.fromString("docker.foo.com:4443/vespa/bar"))));
hosts.add(new HostSpec("flavor-from-resources-2",
smallSlowDiskSpeedNode,
bigSlowDiskSpeedNode,
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java
index 9f74c41dc49..11ce659625d 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java
@@ -5,7 +5,7 @@ import com.yahoo.component.Version;
import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.AthenzDomain;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.HostFilter;
import com.yahoo.config.provision.Provisioner;
import java.util.logging.Level;
@@ -51,7 +51,7 @@ public class Deployment implements com.yahoo.config.provision.Deployment {
private final DeployLogger logger = new SilentDeployLogger();
/** The repository part of docker image this application should run on. Version is separate from image repo */
- final Optional<ContainerImage> dockerImageRepository;
+ final Optional<DockerImage> dockerImageRepository;
/** The Vespa version this application should run on */
private final Version version;
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java
index 73d0e66ef53..3d4198c65a9 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java
@@ -17,7 +17,7 @@ import com.yahoo.config.model.api.Provisioned;
import com.yahoo.config.model.api.Quota;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.AthenzDomain;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.Zone;
import com.yahoo.vespa.flags.FetchVector;
@@ -48,7 +48,7 @@ public class ModelContextImpl implements ModelContext {
private final ModelContext.Properties properties;
private final Optional<File> appDir;
- private final Optional<ContainerImage> wantedDockerImageRepository;
+ private final Optional<DockerImage> wantedDockerImageRepository;
/** The version of Vespa we are building a model for */
private final Version modelVespaVersion;
@@ -72,7 +72,7 @@ public class ModelContextImpl implements ModelContext {
Provisioned provisioned,
ModelContext.Properties properties,
Optional<File> appDir,
- Optional<ContainerImage> wantedDockerImageRepository,
+ Optional<DockerImage> wantedDockerImageRepository,
Version modelVespaVersion,
Version wantedNodeVespaVersion) {
this.applicationPackage = applicationPackage;
@@ -126,7 +126,7 @@ public class ModelContextImpl implements ModelContext {
public Optional<File> appDir() { return appDir; }
@Override
- public Optional<ContainerImage> wantedDockerImageRepo() { return wantedDockerImageRepository; }
+ public Optional<DockerImage> wantedDockerImageRepo() { return wantedDockerImageRepository; }
@Override
public Version modelVespaVersion() { return modelVespaVersion; }
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java
index 168273bd349..7fc6b35722f 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java
@@ -12,7 +12,7 @@ import com.yahoo.config.model.api.Provisioned;
import com.yahoo.config.model.application.provider.MockFileRegistry;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.TenantName;
import com.yahoo.container.jdisc.secretstore.SecretStore;
@@ -85,7 +85,7 @@ public class ActivatedModelsBuilder extends ModelsBuilder<Application> {
protected Application buildModelVersion(ModelFactory modelFactory,
ApplicationPackage applicationPackage,
ApplicationId applicationId,
- Optional<ContainerImage> wantedDockerImageRepository,
+ Optional<DockerImage> wantedDockerImageRepository,
Version wantedNodeVespaVersion,
Optional<AllocatedHosts> ignored // Ignored since we have this in the app package for activated models
) {
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ModelsBuilder.java
index c80d044e831..245b9db020b 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ModelsBuilder.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ModelsBuilder.java
@@ -10,7 +10,7 @@ import com.yahoo.config.model.api.Provisioned;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ApplicationLockException;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.OutOfCapacityException;
import com.yahoo.component.Version;
import com.yahoo.config.provision.TransientException;
@@ -73,7 +73,7 @@ public abstract class ModelsBuilder<MODELRESULT extends ModelResult> {
* and assigns to this SettableOptional such that it can be used after this method returns
*/
public List<MODELRESULT> buildModels(ApplicationId applicationId,
- Optional<ContainerImage> dockerImageRepository,
+ Optional<DockerImage> dockerImageRepository,
Version wantedNodeVespaVersion,
ApplicationPackage applicationPackage,
SettableOptional<AllocatedHosts> allocatedHosts,
@@ -149,7 +149,7 @@ public abstract class ModelsBuilder<MODELRESULT extends ModelResult> {
// versions is the set of versions for one particular major version
private List<MODELRESULT> buildModelVersions(Set<Version> versions,
ApplicationId applicationId,
- Optional<ContainerImage> wantedDockerImageRepository,
+ Optional<DockerImage> wantedDockerImageRepository,
Version wantedNodeVespaVersion,
ApplicationPackage applicationPackage,
SettableOptional<AllocatedHosts> allocatedHosts,
@@ -242,7 +242,7 @@ public abstract class ModelsBuilder<MODELRESULT extends ModelResult> {
}
protected abstract MODELRESULT buildModelVersion(ModelFactory modelFactory, ApplicationPackage applicationPackage,
- ApplicationId applicationId, Optional<ContainerImage> dockerImageRepository,
+ ApplicationId applicationId, Optional<DockerImage> dockerImageRepository,
Version wantedNodeVespaVersion, Optional<AllocatedHosts> allocatedHosts);
/**
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java
index 611ef38c1f8..aa851a95335 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java
@@ -19,7 +19,7 @@ import com.yahoo.config.model.api.ValidationParameters.IgnoreValidationErrors;
import com.yahoo.config.model.application.provider.FilesApplicationPackage;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.vespa.config.server.application.Application;
import com.yahoo.vespa.config.server.application.ApplicationSet;
import com.yahoo.vespa.config.server.application.PermanentApplicationPackage;
@@ -80,7 +80,7 @@ public class PreparedModelsBuilder extends ModelsBuilder<PreparedModelsBuilder.P
protected PreparedModelResult buildModelVersion(ModelFactory modelFactory,
ApplicationPackage applicationPackage,
ApplicationId applicationId,
- Optional<ContainerImage> wantedDockerImageRepository,
+ Optional<DockerImage> wantedDockerImageRepository,
Version wantedNodeVespaVersion,
Optional<AllocatedHosts> allocatedHosts) {
Version modelVersion = modelFactory.version();
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/PrepareParams.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/PrepareParams.java
index 6524b18ab0e..1fea966503b 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/PrepareParams.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/PrepareParams.java
@@ -8,7 +8,7 @@ import com.yahoo.config.model.api.EndpointCertificateMetadata;
import com.yahoo.config.model.api.Quota;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.AthenzDomain;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.TenantName;
import com.yahoo.container.jdisc.HttpRequest;
import com.yahoo.slime.SlimeUtils;
@@ -55,7 +55,7 @@ public final class PrepareParams {
private final List<ContainerEndpoint> containerEndpoints;
private final Optional<String> tlsSecretsKeyName;
private final Optional<EndpointCertificateMetadata> endpointCertificateMetadata;
- private final Optional<ContainerImage> dockerImageRepository;
+ private final Optional<DockerImage> dockerImageRepository;
private final Optional<AthenzDomain> athenzDomain;
private final Optional<ApplicationRoles> applicationRoles;
private final Optional<Quota> quota;
@@ -64,7 +64,7 @@ public final class PrepareParams {
boolean dryRun, boolean verbose, boolean isBootstrap, Optional<Version> vespaVersion,
List<ContainerEndpoint> containerEndpoints, Optional<String> tlsSecretsKeyName,
Optional<EndpointCertificateMetadata> endpointCertificateMetadata,
- Optional<ContainerImage> dockerImageRepository, Optional<AthenzDomain> athenzDomain,
+ Optional<DockerImage> dockerImageRepository, Optional<AthenzDomain> athenzDomain,
Optional<ApplicationRoles> applicationRoles, Optional<Quota> quota) {
this.timeoutBudget = timeoutBudget;
this.applicationId = Objects.requireNonNull(applicationId);
@@ -94,7 +94,7 @@ public final class PrepareParams {
private List<ContainerEndpoint> containerEndpoints = null;
private Optional<String> tlsSecretsKeyName = Optional.empty();
private Optional<EndpointCertificateMetadata> endpointCertificateMetadata = Optional.empty();
- private Optional<ContainerImage> dockerImageRepository = Optional.empty();
+ private Optional<DockerImage> dockerImageRepository = Optional.empty();
private Optional<AthenzDomain> athenzDomain = Optional.empty();
private Optional<ApplicationRoles> applicationRoles = Optional.empty();
private Optional<Quota> quota = Optional.empty();
@@ -168,12 +168,12 @@ public final class PrepareParams {
public Builder dockerImageRepository(String dockerImageRepository) {
this.dockerImageRepository = (dockerImageRepository == null)
? Optional.empty()
- : Optional.of(ContainerImage.fromString(dockerImageRepository));
+ : Optional.of(DockerImage.fromString(dockerImageRepository));
return this;
}
- public Builder dockerImageRepository(ContainerImage containerImageRepository) {
- this.dockerImageRepository = Optional.ofNullable(containerImageRepository);
+ public Builder dockerImageRepository(DockerImage dockerImageRepository) {
+ this.dockerImageRepository = Optional.ofNullable(dockerImageRepository);
return this;
}
@@ -282,7 +282,7 @@ public final class PrepareParams {
return endpointCertificateMetadata;
}
- public Optional<ContainerImage> dockerImageRepository() {
+ public Optional<DockerImage> dockerImageRepository() {
return dockerImageRepository;
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java
index 0bd477b4514..b3e35e955de 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java
@@ -9,7 +9,7 @@ import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.AthenzDomain;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.TenantName;
import com.yahoo.path.Path;
import com.yahoo.transaction.Transaction;
@@ -126,7 +126,7 @@ public abstract class Session implements Comparable<Session> {
sessionZooKeeperClient.writeVespaVersion(version);
}
- public void setDockerImageRepository(Optional<ContainerImage> dockerImageRepository) {
+ public void setDockerImageRepository(Optional<DockerImage> dockerImageRepository) {
sessionZooKeeperClient.writeDockerImageRepository(dockerImageRepository);
}
@@ -151,7 +151,7 @@ public abstract class Session implements Comparable<Session> {
public FileReference getApplicationPackageReference() {return sessionZooKeeperClient.readApplicationPackageReference(); }
- public Optional<ContainerImage> getDockerImageRepository() { return sessionZooKeeperClient.readDockerImageRepository(); }
+ public Optional<DockerImage> getDockerImageRepository() { return sessionZooKeeperClient.readDockerImageRepository(); }
public Version getVespaVersion() { return sessionZooKeeperClient.readVespaVersion(); }
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
index b146e90930f..489cb8c8167 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
@@ -21,7 +21,7 @@ import com.yahoo.config.model.api.Quota;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.AthenzDomain;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.Zone;
import com.yahoo.container.jdisc.secretstore.SecretStore;
@@ -157,7 +157,7 @@ public class SessionPreparer {
final ApplicationId applicationId;
/** The repository part of docker image to be used for this deployment */
- final Optional<ContainerImage> dockerImageRepository;
+ final Optional<DockerImage> dockerImageRepository;
/** The version of Vespa the application to be prepared specifies for its nodes */
final Version vespaVersion;
@@ -333,7 +333,7 @@ public class SessionPreparer {
ApplicationPackage applicationPackage,
ApplicationId applicationId,
FileReference distributedApplicationPackage,
- Optional<ContainerImage> dockerImageRepository,
+ Optional<DockerImage> dockerImageRepository,
Version vespaVersion,
DeployLogger deployLogger,
Map<Version, FileRegistry> fileRegistryMap,
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java
index b019f07951c..c5cf3db1ba0 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java
@@ -11,7 +11,7 @@ import com.yahoo.config.model.api.Quota;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.AthenzDomain;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.TenantName;
import com.yahoo.path.Path;
import com.yahoo.slime.SlimeUtils;
@@ -197,13 +197,13 @@ public class SessionZooKeeperClient {
return new Version(configCurator.getData(versionPath()));
}
- public Optional<ContainerImage> readDockerImageRepository() {
+ public Optional<DockerImage> readDockerImageRepository() {
if ( ! configCurator.exists(dockerImageRepositoryPath())) return Optional.empty();
String dockerImageRepository = configCurator.getData(dockerImageRepositoryPath());
- return dockerImageRepository.isEmpty() ? Optional.empty() : Optional.of(ContainerImage.fromString(dockerImageRepository));
+ return dockerImageRepository.isEmpty() ? Optional.empty() : Optional.of(DockerImage.fromString(dockerImageRepository));
}
- public void writeDockerImageRepository(Optional<ContainerImage> dockerImageRepository) {
+ public void writeDockerImageRepository(Optional<DockerImage> dockerImageRepository) {
dockerImageRepository.ifPresent(repo -> configCurator.putData(dockerImageRepositoryPath(), repo.repository()));
}
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java
index efb8a80240a..254fe62cba8 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java
@@ -15,7 +15,7 @@ import com.yahoo.config.model.provision.Hosts;
import com.yahoo.config.model.provision.InMemoryProvisioner;
import com.yahoo.config.model.test.HostedConfigModelRegistry;
import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.RegionName;
import com.yahoo.config.provision.Zone;
@@ -102,7 +102,7 @@ public class HostedDeployTest {
assertTrue(deployment.isPresent());
deployment.get().activate();
assertEquals("4.5.6", ((Deployment) deployment.get()).session().getVespaVersion().toString());
- assertEquals(ContainerImage.fromString(dockerImageRepository), ((Deployment) deployment.get()).session().getDockerImageRepository().get());
+ assertEquals(DockerImage.fromString(dockerImageRepository), ((Deployment) deployment.get()).session().getDockerImageRepository().get());
assertEquals("myDomain", ((Deployment) deployment.get()).session().getAthenzDomain().get().value());
}
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java
index 7fe826167f8..cc4f39b0789 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java
@@ -6,7 +6,7 @@ import com.yahoo.cloud.config.ConfigserverConfig;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ApplicationLockException;
import com.yahoo.config.provision.ApplicationName;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.OutOfCapacityException;
import com.yahoo.config.provision.TenantName;
@@ -280,7 +280,7 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest {
request(HttpRequest.Method.PUT, sessionId, Map.of("dockerImageRepository", dockerImageRepository,
"applicationName", applicationId().application().value()));
applicationRepository.activate(tenantRepository.getTenant(tenant), sessionId, timeoutBudget, false);
- assertEquals(ContainerImage.fromString(dockerImageRepository),
+ assertEquals(DockerImage.fromString(dockerImageRepository),
applicationRepository.getActiveSession(applicationId()).getDockerImageRepository().get());
}
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackageTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackageTest.java
index 18bab3bf348..2ac3785682c 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackageTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackageTest.java
@@ -6,7 +6,7 @@ import com.yahoo.config.application.api.DeploymentSpec;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.ClusterMembership;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.NodeFlavors;
@@ -49,9 +49,9 @@ public class ZKApplicationPackageTest {
TEST_FLAVOR.get().resources(),
TEST_FLAVOR.get().resources(),
ClusterMembership.from("container/test/0/0", Version.fromString("6.73.1"),
- Optional.of(ContainerImage.fromString("docker.foo.com:4443/vespa/bar"))),
+ Optional.of(DockerImage.fromString("docker.foo.com:4443/vespa/bar"))),
Optional.of(Version.fromString("6.0.1")), Optional.empty(),
- Optional.of(ContainerImage.fromString("docker repo")))));
+ Optional.of(DockerImage.fromString("docker repo")))));
private ConfigCurator configCurator;
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/model/DeploymentData.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/model/DeploymentData.java
index 688583e13d5..717a4296b81 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/model/DeploymentData.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/model/DeploymentData.java
@@ -2,7 +2,7 @@ package com.yahoo.vespa.hosted.controller.api.application.v4.model;
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.zone.ZoneId;
import com.yahoo.vespa.athenz.api.AthenzDomain;
import com.yahoo.vespa.hosted.controller.api.integration.aws.ApplicationRoles;
@@ -28,7 +28,7 @@ public class DeploymentData {
private final Version platform;
private final Set<ContainerEndpoint> containerEndpoints;
private final Optional<EndpointCertificateMetadata> endpointCertificateMetadata;
- private final Optional<ContainerImage> dockerImageRepo;
+ private final Optional<DockerImage> dockerImageRepo;
private final Optional<AthenzDomain> athenzDomain;
private final Optional<ApplicationRoles> applicationRoles;
private final Optional<Quota> quota;
@@ -36,7 +36,7 @@ public class DeploymentData {
public DeploymentData(ApplicationId instance, ZoneId zone, byte[] applicationPackage, Version platform,
Set<ContainerEndpoint> containerEndpoints,
Optional<EndpointCertificateMetadata> endpointCertificateMetadata,
- Optional<ContainerImage> dockerImageRepo,
+ Optional<DockerImage> dockerImageRepo,
Optional<AthenzDomain> athenzDomain,
Optional<ApplicationRoles> applicationRoles,
Optional<Quota> quota) {
@@ -76,7 +76,7 @@ public class DeploymentData {
return endpointCertificateMetadata;
}
- public Optional<ContainerImage> dockerImageRepo() {
+ public Optional<DockerImage> dockerImageRepo() {
return dockerImageRepo;
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java
index b0838f1c070..07e411cd5cd 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java
@@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.configserver;
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.HostName;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
@@ -31,8 +31,8 @@ public class Node {
private final Version wantedVersion;
private final Version currentOsVersion;
private final Version wantedOsVersion;
- private final ContainerImage currentContainerImage;
- private final ContainerImage wantedContainerImage;
+ private final DockerImage currentDockerImage;
+ private final DockerImage wantedDockerImage;
private final ServiceState serviceState;
private final Optional<Instant> suspendedSince;
private final Optional<Instant> currentFirmwareCheck;
@@ -54,7 +54,7 @@ public class Node {
Optional<Instant> currentFirmwareCheck, Optional<Instant> wantedFirmwareCheck, ServiceState serviceState,
Optional<Instant> suspendedSince, long restartGeneration, long wantedRestartGeneration, long rebootGeneration, long wantedRebootGeneration,
int cost, String flavor, String clusterId, ClusterType clusterType, boolean wantToRetire, boolean wantToDeprovision,
- Optional<TenantName> reservedTo, ContainerImage wantedContainerImage, ContainerImage currentContainerImage) {
+ Optional<TenantName> reservedTo, DockerImage wantedDockerImage, DockerImage currentDockerImage) {
this.hostname = hostname;
this.parentHostname = parentHostname;
this.state = state;
@@ -80,8 +80,8 @@ public class Node {
this.wantToRetire = wantToRetire;
this.wantToDeprovision = wantToDeprovision;
this.reservedTo = reservedTo;
- this.wantedContainerImage = wantedContainerImage;
- this.currentContainerImage = currentContainerImage;
+ this.wantedDockerImage = wantedDockerImage;
+ this.currentDockerImage = currentDockerImage;
}
public HostName hostname() {
@@ -122,12 +122,12 @@ public class Node {
return wantedOsVersion;
}
- public ContainerImage currentDockerImage() {
- return currentContainerImage;
+ public DockerImage currentDockerImage() {
+ return currentDockerImage;
}
- public ContainerImage wantedDockerImage() {
- return wantedContainerImage;
+ public DockerImage wantedDockerImage() {
+ return wantedDockerImage;
}
public Optional<Instant> currentFirmwareCheck() {
@@ -241,8 +241,8 @@ public class Node {
private Version wantedVersion;
private Version currentOsVersion;
private Version wantedOsVersion;
- private ContainerImage currentContainerImage;
- private ContainerImage wantedContainerImage;
+ private DockerImage currentDockerImage;
+ private DockerImage wantedDockerImage;
private Optional<Instant> currentFirmwareCheck = Optional.empty();
private Optional<Instant> wantedFirmwareCheck = Optional.empty();
private ServiceState serviceState;
@@ -272,8 +272,8 @@ public class Node {
this.wantedVersion = node.wantedVersion;
this.currentOsVersion = node.currentOsVersion;
this.wantedOsVersion = node.wantedOsVersion;
- this.currentContainerImage = node.currentContainerImage;
- this.wantedContainerImage = node.wantedContainerImage;
+ this.currentDockerImage = node.currentDockerImage;
+ this.wantedDockerImage = node.wantedDockerImage;
this.currentFirmwareCheck = node.currentFirmwareCheck;
this.wantedFirmwareCheck = node.wantedFirmwareCheck;
this.serviceState = node.serviceState;
@@ -341,13 +341,13 @@ public class Node {
return this;
}
- public Builder currentDockerImage(ContainerImage currentContainerImage) {
- this.currentContainerImage = currentContainerImage;
+ public Builder currentDockerImage(DockerImage currentDockerImage) {
+ this.currentDockerImage = currentDockerImage;
return this;
}
- public Builder wantedDockerImage(ContainerImage wantedContainerImage) {
- this.wantedContainerImage = wantedContainerImage;
+ public Builder wantedDockerImage(DockerImage wantedDockerImage) {
+ this.wantedDockerImage = wantedDockerImage;
return this;
}
@@ -431,7 +431,7 @@ public class Node {
currentOsVersion, wantedOsVersion, currentFirmwareCheck, wantedFirmwareCheck, serviceState,
suspendedSince, restartGeneration, wantedRestartGeneration, rebootGeneration, wantedRebootGeneration,
cost, flavor, clusterId, clusterType, wantToRetire, wantToDeprovision, reservedTo,
- wantedContainerImage, currentContainerImage);
+ wantedDockerImage, currentDockerImage);
}
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java
index 91485d000f2..aebfab7cbff 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java
@@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.configserver;
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.HostName;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
@@ -211,8 +211,8 @@ public interface NodeRepository {
return s == null ? Version.emptyVersion : Version.fromString(s);
}
- private static ContainerImage dockerImageFrom(String s) {
- return s == null ? ContainerImage.EMPTY : ContainerImage.fromString(s);
+ private static DockerImage dockerImageFrom(String s) {
+ return s == null ? DockerImage.EMPTY : DockerImage.fromString(s);
}
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
index 61208772930..7135cbe77c9 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
@@ -6,7 +6,7 @@ import com.yahoo.config.application.api.DeploymentSpec;
import com.yahoo.config.application.api.ValidationId;
import com.yahoo.config.application.api.ValidationOverrides;
import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.TenantName;
@@ -513,13 +513,13 @@ public class ApplicationController {
Optional<EndpointCertificateMetadata> endpointCertificateMetadata,
Optional<ApplicationRoles> applicationRoles) {
try {
- Optional<ContainerImage> dockerImageRepo = Optional.ofNullable(
+ Optional<DockerImage> dockerImageRepo = Optional.ofNullable(
dockerImageRepoFlag
.with(FetchVector.Dimension.ZONE_ID, zone.value())
.with(FetchVector.Dimension.APPLICATION_ID, application.serializedForm())
.value())
.filter(s -> !s.isBlank())
- .map(ContainerImage::fromString);
+ .map(DockerImage::fromString);
Optional<AthenzDomain> domain = controller.tenants().get(application.tenant())
.filter(tenant-> tenant instanceof AthenzTenant)
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java
index 0bae2507950..1dd3b4a7a47 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java
@@ -7,7 +7,7 @@ import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.NodeResources;
@@ -76,7 +76,7 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer
private final Map<DeploymentId, ServiceConvergence> serviceStatus = new HashMap<>();
private final Set<ApplicationId> disallowConvergenceCheckApplications = new HashSet<>();
private final Version initialVersion = new Version(6, 1, 0);
- private final ContainerImage initialContainerImage = ContainerImage.fromString("dockerImage:6.1.0");
+ private final DockerImage initialDockerImage = DockerImage.fromString("dockerImage:6.1.0");
private final Set<DeploymentId> suspendedApplications = new HashSet<>();
private final Map<ZoneId, Set<LoadBalancer>> loadBalancers = new HashMap<>();
private final Set<Environment> deferLoadBalancerProvisioning = new HashSet<>();
@@ -122,8 +122,8 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer
.parentHostname(parent.hostname())
.currentVersion(initialVersion)
.wantedVersion(initialVersion)
- .currentDockerImage(initialContainerImage)
- .wantedDockerImage(initialContainerImage)
+ .currentDockerImage(initialDockerImage)
+ .wantedDockerImage(initialDockerImage)
.currentOsVersion(Version.emptyVersion)
.wantedOsVersion(Version.emptyVersion)
.resources(new NodeResources(2, 8, 50, 1, slow, remote))
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Container.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Container.java
index 2eed86a26de..1e861f230ce 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Container.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Container.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.dockerapi;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import java.util.Objects;
@@ -10,7 +10,7 @@ import java.util.Objects;
*/
public class Container {
public final String hostname;
- public final ContainerImage image;
+ public final DockerImage image;
public final ContainerResources resources;
public final ContainerName name;
public final State state;
@@ -18,7 +18,7 @@ public class Container {
public Container(
final String hostname,
- final ContainerImage image,
+ final DockerImage image,
final ContainerResources resources,
final ContainerName containerName,
final State state,
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerEngine.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerEngine.java
index 2ba82b83287..984e1261d63 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerEngine.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerEngine.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.dockerapi;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import java.net.InetAddress;
import java.nio.file.Path;
@@ -58,7 +58,7 @@ public interface ContainerEngine {
void create();
}
- CreateContainerCommand createContainerCommand(ContainerImage containerImage, ContainerName containerName);
+ CreateContainerCommand createContainerCommand(DockerImage dockerImage, ContainerName containerName);
Optional<ContainerStats> getContainerStats(ContainerName containerName);
@@ -76,14 +76,14 @@ public interface ContainerEngine {
* Checks if the image is currently being pulled or is already pulled, if not, starts an async
* pull of the image
*
- * @param image Container image to pull
+ * @param image Docker image to pull
* @return true iff image being pulled, false otherwise
*/
- boolean pullImageAsyncIfNeeded(ContainerImage image);
+ boolean pullImageAsyncIfNeeded(DockerImage image);
boolean noManagedContainersRunning(String manager);
- boolean deleteUnusedContainerImages(List<ContainerImage> excludes, Duration minImageAgeToDelete);
+ boolean deleteUnusedDockerImages(List<DockerImage> excludes, Duration minImageAgeToDelete);
/**
* @param containerName The name of the container
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java
index 38c3074afe5..ed2c4501110 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java
@@ -7,7 +7,7 @@ import com.github.dockerjava.api.model.Bind;
import com.github.dockerjava.api.model.Capability;
import com.github.dockerjava.api.model.HostConfig;
import com.github.dockerjava.api.model.Ulimit;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.vespa.hosted.dockerapi.exception.DockerException;
import java.net.Inet6Address;
@@ -29,7 +29,7 @@ import static com.yahoo.vespa.hosted.dockerapi.DockerImpl.LABEL_NAME_MANAGEDBY;
class CreateContainerCommandImpl implements ContainerEngine.CreateContainerCommand {
private final DockerClient docker;
- private final ContainerImage containerImage;
+ private final DockerImage dockerImage;
private final ContainerName containerName;
private final Map<String, String> labels = new HashMap<>();
private final List<String> environmentAssignments = new ArrayList<>();
@@ -48,9 +48,9 @@ class CreateContainerCommandImpl implements ContainerEngine.CreateContainerComma
private Optional<String[]> entrypoint = Optional.empty();
private boolean privileged = false;
- CreateContainerCommandImpl(DockerClient docker, ContainerImage containerImage, ContainerName containerName) {
+ CreateContainerCommandImpl(DockerClient docker, DockerImage dockerImage, ContainerName containerName) {
this.docker = docker;
- this.containerImage = containerImage;
+ this.dockerImage = dockerImage;
this.containerName = containerName;
}
@@ -190,7 +190,7 @@ class CreateContainerCommandImpl implements ContainerEngine.CreateContainerComma
.withCpuQuota(cr.cpuQuota() > 0 ? (long) cr.cpuQuota() : null));
final CreateContainerCmd containerCmd = docker
- .createContainerCmd(containerImage.asString())
+ .createContainerCmd(dockerImage.asString())
.withHostConfig(hostConfig)
.withName(containerName.asString())
.withLabels(labels)
@@ -255,7 +255,7 @@ class CreateContainerCommandImpl implements ContainerEngine.CreateContainerComma
toOptionalOption("--ip6", ipv6Address),
toOptionalOption("--entrypoint", entrypointExecuteable),
toFlagOption("--privileged", privileged),
- containerImage.asString(),
+ dockerImage.asString(),
entrypointArgs)
.filter(s -> !s.isEmpty())
.collect(Collectors.joining(" "));
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollector.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollector.java
index d4b44b8dff6..e2116f7037e 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollector.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollector.java
@@ -5,7 +5,7 @@ import com.github.dockerjava.api.model.Container;
import com.github.dockerjava.api.model.Image;
import com.google.common.base.Strings;
import com.yahoo.collections.Pair;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import java.time.Clock;
import java.time.Duration;
@@ -72,7 +72,7 @@ class DockerImageGarbageCollector {
* @param minImageAgeToDelete Minimum duration after which an image can be removed if it has not been used
* @return true iff at least 1 image was deleted
*/
- boolean deleteUnusedDockerImages(List<ContainerImage> excludes, Duration minImageAgeToDelete) {
+ boolean deleteUnusedDockerImages(List<DockerImage> excludes, Duration minImageAgeToDelete) {
List<Image> images = docker.listAllImages();
List<Container> containers = docker.listAllContainers();
@@ -100,7 +100,7 @@ class DockerImageGarbageCollector {
Set<String> imagesToKeep = Stream
.concat(
getRecentlyUsedImageIds(images, containers, minImageAgeToDelete).stream(), // 1
- containerImageToImageIds(excludes, images).stream()) // 2
+ dockerImageToImageIds(excludes, images).stream()) // 2
.flatMap(imageId -> ancestorsByImageId.getOrDefault(imageId, Collections.emptySet()).stream()) // 3
.collect(Collectors.toSet());
@@ -128,7 +128,7 @@ class DockerImageGarbageCollector {
// Deleting an image by image ID with multiple tags will fail -> delete by tags instead
referencesOf(image).forEach(imageReference -> {
logger.info("Deleting unused docker image " + imageReference);
- docker.deleteImage(ContainerImage.fromString(imageReference));
+ docker.deleteImage(DockerImage.fromString(imageReference));
});
lastTimeUsedByImageId.remove(image.getId());
})
@@ -152,18 +152,18 @@ class DockerImageGarbageCollector {
}
/**
- * Attemps to make containerImages which may be image tags or image ids to image ids. This only works
+ * Attemps to make dockerImages which may be image tags or image ids to image ids. This only works
* if the given tag is actually present locally. This is fine, because if it isn't - we can't delete
* it, so no harm done.
*/
- private Set<String> containerImageToImageIds(List<ContainerImage> containerImages, List<Image> images) {
+ private Set<String> dockerImageToImageIds(List<DockerImage> dockerImages, List<Image> images) {
Map<String, String> imageIdByImageTag = images.stream()
.flatMap(image -> referencesOf(image).stream()
.map(repoTag -> new Pair<>(repoTag, image.getId())))
.collect(Collectors.toMap(Pair::getFirst, Pair::getSecond));
- return containerImages.stream()
- .map(ContainerImage::asString)
+ return dockerImages.stream()
+ .map(DockerImage::asString)
.map(tag -> imageIdByImageTag.getOrDefault(tag, tag))
.collect(Collectors.toSet());
}
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java
index 15bafa9b561..6125a0ec2d8 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java
@@ -21,7 +21,7 @@ import com.github.dockerjava.core.command.ExecStartResultCallback;
import com.github.dockerjava.core.command.PullImageResultCallback;
import com.github.dockerjava.jaxrs.JerseyDockerCmdExecFactory;
import com.google.inject.Inject;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.vespa.hosted.dockerapi.exception.ContainerNotFoundException;
import com.yahoo.vespa.hosted.dockerapi.exception.DockerException;
import com.yahoo.vespa.hosted.dockerapi.exception.DockerExecTimeoutException;
@@ -51,7 +51,7 @@ public class DockerImpl implements ContainerEngine {
private static final Duration WAIT_BEFORE_KILLING = Duration.ofSeconds(10);
private final Object monitor = new Object();
- private final Set<ContainerImage> scheduledPulls = new HashSet<>();
+ private final Set<DockerImage> scheduledPulls = new HashSet<>();
private final DockerClient dockerClient;
private final DockerImageGarbageCollector dockerImageGC;
@@ -70,7 +70,7 @@ public class DockerImpl implements ContainerEngine {
}
@Override
- public boolean pullImageAsyncIfNeeded(ContainerImage image) {
+ public boolean pullImageAsyncIfNeeded(DockerImage image) {
try {
synchronized (monitor) {
if (scheduledPulls.contains(image)) return true;
@@ -89,7 +89,7 @@ public class DockerImpl implements ContainerEngine {
}
}
- private void removeScheduledPoll(ContainerImage image) {
+ private void removeScheduledPoll(DockerImage image) {
synchronized (monitor) {
scheduledPulls.remove(image);
}
@@ -98,23 +98,23 @@ public class DockerImpl implements ContainerEngine {
/**
* Check if a given image is already in the local registry
*/
- boolean imageIsDownloaded(ContainerImage containerImage) {
- return inspectImage(containerImage).isPresent();
+ boolean imageIsDownloaded(DockerImage dockerImage) {
+ return inspectImage(dockerImage).isPresent();
}
- private Optional<InspectImageResponse> inspectImage(ContainerImage containerImage) {
+ private Optional<InspectImageResponse> inspectImage(DockerImage dockerImage) {
try {
- return Optional.of(dockerClient.inspectImageCmd(containerImage.asString()).exec());
+ return Optional.of(dockerClient.inspectImageCmd(dockerImage.asString()).exec());
} catch (NotFoundException e) {
return Optional.empty();
} catch (RuntimeException e) {
numberOfDockerApiFails.increment();
- throw new DockerException("Failed to inspect image '" + containerImage.asString() + "'", e);
+ throw new DockerException("Failed to inspect image '" + dockerImage.asString() + "'", e);
}
}
@Override
- public CreateContainerCommand createContainerCommand(ContainerImage image, ContainerName containerName) {
+ public CreateContainerCommand createContainerCommand(DockerImage image, ContainerName containerName) {
return new CreateContainerCommandImpl(dockerClient, image, containerName);
}
@@ -265,7 +265,7 @@ public class DockerImpl implements ContainerEngine {
return inspectContainerCmd(container)
.map(response -> new Container(
response.getConfig().getHostName(),
- ContainerImage.fromString(response.getConfig().getImage()),
+ DockerImage.fromString(response.getConfig().getImage()),
containerResourcesFromHostConfig(response.getHostConfig()),
new ContainerName(decode(response.getName())),
Container.State.valueOf(response.getState().getStatus().toUpperCase()),
@@ -319,44 +319,44 @@ public class DockerImpl implements ContainerEngine {
}
}
- void deleteImage(ContainerImage containerImage) {
+ void deleteImage(DockerImage dockerImage) {
try {
- dockerClient.removeImageCmd(containerImage.asString()).exec();
+ dockerClient.removeImageCmd(dockerImage.asString()).exec();
} catch (NotFoundException ignored) {
// Image was already deleted, ignore
} catch (RuntimeException e) {
numberOfDockerApiFails.increment();
- throw new DockerException("Failed to delete docker image " + containerImage.asString(), e);
+ throw new DockerException("Failed to delete docker image " + dockerImage.asString(), e);
}
}
@Override
- public boolean deleteUnusedContainerImages(List<ContainerImage> excludes, Duration minImageAgeToDelete) {
+ public boolean deleteUnusedDockerImages(List<DockerImage> excludes, Duration minImageAgeToDelete) {
return dockerImageGC.deleteUnusedDockerImages(excludes, minImageAgeToDelete);
}
private class ImagePullCallback extends PullImageResultCallback {
- private final ContainerImage containerImage;
+ private final DockerImage dockerImage;
- private ImagePullCallback(ContainerImage containerImage) {
- this.containerImage = containerImage;
+ private ImagePullCallback(DockerImage dockerImage) {
+ this.dockerImage = dockerImage;
}
@Override
public void onError(Throwable throwable) {
- removeScheduledPoll(containerImage);
- logger.log(Level.SEVERE, "Could not download image " + containerImage.asString(), throwable);
+ removeScheduledPoll(dockerImage);
+ logger.log(Level.SEVERE, "Could not download image " + dockerImage.asString(), throwable);
}
@Override
public void onComplete() {
- if (imageIsDownloaded(containerImage)) {
- logger.log(Level.INFO, "Download completed: " + containerImage.asString());
- removeScheduledPoll(containerImage);
+ if (imageIsDownloaded(dockerImage)) {
+ logger.log(Level.INFO, "Download completed: " + dockerImage.asString());
+ removeScheduledPoll(dockerImage);
} else {
numberOfDockerApiFails.increment();
- throw new DockerClientException("Could not download image: " + containerImage);
+ throw new DockerClientException("Could not download image: " + dockerImage);
}
}
}
diff --git a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImplTest.java b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImplTest.java
index ea92186e8bd..b4ba6dbb502 100644
--- a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImplTest.java
+++ b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImplTest.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.dockerapi;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import org.junit.Test;
import java.net.InetAddress;
@@ -14,13 +14,13 @@ public class CreateContainerCommandImplTest {
@Test
public void testToString() throws UnknownHostException {
- ContainerImage containerImage = ContainerImage.fromString("docker.registry.domain.tld/my/image:1.2.3");
+ DockerImage dockerImage = DockerImage.fromString("docker.registry.domain.tld/my/image:1.2.3");
ContainerResources containerResources = new ContainerResources(2.5, 100, 1024);
String hostname = "docker-1.region.domain.tld";
ContainerName containerName = ContainerName.fromHostname(hostname);
ContainerEngine.CreateContainerCommand createContainerCommand = new CreateContainerCommandImpl(
- null, containerImage, containerName)
+ null, dockerImage, containerName)
.withHostName(hostname)
.withResources(containerResources)
.withLabel("my-label", "test-label")
diff --git a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/ContainerImageGarbageCollectionTest.java b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollectionTest.java
index 92c0e52bd6f..40c4cb167a2 100644
--- a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/ContainerImageGarbageCollectionTest.java
+++ b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollectionTest.java
@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.dockerjava.api.model.Image;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.test.ManualClock;
import org.junit.Test;
@@ -28,7 +28,7 @@ import static org.mockito.Mockito.when;
/**
* @author freva
*/
-public class ContainerImageGarbageCollectionTest {
+public class DockerImageGarbageCollectionTest {
private final ImageGcTester gcTester = new ImageGcTester();
@@ -173,7 +173,7 @@ public class ContainerImageGarbageCollectionTest {
private final DockerImpl docker = mock(DockerImpl.class);
private final ManualClock clock = new ManualClock();
private final DockerImageGarbageCollector imageGC = new DockerImageGarbageCollector(docker, clock);
- private final Map<ContainerImage, Integer> numDeletes = new HashMap<>();
+ private final Map<DockerImage, Integer> numDeletes = new HashMap<>();
private boolean initialized = false;
private ImageGcTester withExistingImages(ImageBuilder... images) {
@@ -211,11 +211,11 @@ public class ContainerImageGarbageCollectionTest {
clock.advance(Duration.ofMinutes(minutesAfter));
imageGC.deleteUnusedDockerImages(
- except.stream().map(ContainerImage::fromString).collect(Collectors.toList()),
+ except.stream().map(DockerImage::fromString).collect(Collectors.toList()),
Duration.ofHours(1).minusSeconds(1));
Arrays.stream(imageIds)
- .map(ContainerImage::fromString)
+ .map(DockerImage::fromString)
.forEach(image -> {
int newValue = numDeletes.getOrDefault(image, 0) + 1;
numDeletes.put(image, newValue);
diff --git a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImplTest.java b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImplTest.java
index 5387bc390fe..1ca6cd5662e 100644
--- a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImplTest.java
+++ b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImplTest.java
@@ -13,7 +13,7 @@ import com.github.dockerjava.api.command.InspectImageResponse;
import com.github.dockerjava.api.command.PullImageCmd;
import com.github.dockerjava.api.exception.NotFoundException;
import com.github.dockerjava.core.command.ExecStartResultCallback;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.vespa.hosted.dockerapi.metrics.Metrics;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
@@ -75,7 +75,7 @@ public class DockerImplTest {
@Test
@SuppressWarnings({"unchecked", "rawtypes"})
public void pullImageAsyncIfNeededSuccessfully() {
- final ContainerImage image = ContainerImage.fromString("test:1.2.3");
+ final DockerImage image = DockerImage.fromString("test:1.2.3");
InspectImageResponse inspectImageResponse = mock(InspectImageResponse.class);
when(inspectImageResponse.getId()).thenReturn(image.asString());
@@ -104,7 +104,7 @@ public class DockerImplTest {
@Test
@SuppressWarnings({"unchecked", "rawtypes"})
public void pullImageAsyncIfNeededWithError() {
- final ContainerImage image = ContainerImage.fromString("test:1.2.3");
+ final DockerImage image = DockerImage.fromString("test:1.2.3");
InspectImageCmd imageInspectCmd = mock(InspectImageCmd.class);
when(imageInspectCmd.exec()).thenThrow(new NotFoundException("Image not found"));
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,
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 0f721a87f11..983ba5165e3 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
@@ -7,7 +7,7 @@ import com.yahoo.component.AbstractComponent;
import com.yahoo.component.Version;
import com.yahoo.concurrent.maintenance.JobControl;
import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.NodeFlavors;
import com.yahoo.config.provision.NodeType;
@@ -131,7 +131,7 @@ public class NodeRepository extends AbstractComponent {
Clock.systemUTC(),
zone,
new DnsNameResolver(),
- ContainerImage.fromString(config.dockerImage()),
+ DockerImage.fromString(config.dockerImage()),
flagSource,
config.useCuratorClientCache(),
provisionServiceProvider.getHostProvisioner().isPresent(),
@@ -148,7 +148,7 @@ public class NodeRepository extends AbstractComponent {
Clock clock,
Zone zone,
NameResolver nameResolver,
- ContainerImage containerImage,
+ DockerImage dockerImage,
FlagSource flagSource,
boolean useCuratorClientCache,
boolean canProvisionHosts,
@@ -164,7 +164,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, containerImage);
+ this.dockerImages = new DockerImages(db, dockerImage);
this.jobControl = new JobControl(new JobControlFlags(db, flagSource));
this.applications = new Applications(db);
this.canProvisionHosts = canProvisionHosts;
@@ -202,7 +202,7 @@ public class NodeRepository extends AbstractComponent {
public CuratorDatabaseClient database() { return db; }
/** Returns the Docker image to use for given node */
- public ContainerImage dockerImage(Node node) { return dockerImages.dockerImageFor(node.type()); }
+ 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; }
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Status.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Status.java
index 7630fe7dce3..3e5ef81e614 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Status.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Status.java
@@ -2,7 +2,7 @@
package com.yahoo.vespa.hosted.provision.node;
import com.yahoo.component.Version;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import java.time.Instant;
import java.util.Objects;
@@ -17,7 +17,7 @@ public class Status {
private final Generation reboot;
private final Optional<Version> vespaVersion;
- private final Optional<ContainerImage> dockerImage;
+ private final Optional<DockerImage> dockerImage;
private final int failCount;
private final boolean wantToRetire;
private final boolean wantToDeprovision;
@@ -26,7 +26,7 @@ public class Status {
public Status(Generation generation,
Optional<Version> vespaVersion,
- Optional<ContainerImage> dockerImage,
+ Optional<DockerImage> dockerImage,
int failCount,
boolean wantToRetire,
boolean wantToDeprovision,
@@ -34,7 +34,7 @@ public class Status {
Optional<Instant> firmwareVerifiedAt) {
this.reboot = Objects.requireNonNull(generation, "Generation must be non-null");
this.vespaVersion = Objects.requireNonNull(vespaVersion, "Vespa version must be non-null").filter(v -> !Version.emptyVersion.equals(v));
- this.dockerImage = Objects.requireNonNull(dockerImage, "Docker image must be non-null").filter(d -> !ContainerImage.EMPTY.equals(d));
+ this.dockerImage = Objects.requireNonNull(dockerImage, "Docker image must be non-null").filter(d -> !DockerImage.EMPTY.equals(d));
this.failCount = failCount;
if (wantToDeprovision && !wantToRetire) {
throw new IllegalArgumentException("Node cannot be marked wantToDeprovision unless it's also marked wantToRetire");
@@ -58,10 +58,10 @@ public class Status {
public Optional<Version> vespaVersion() { return vespaVersion; }
/** Returns a copy of this with the docker image changed */
- public Status withDockerImage(ContainerImage containerImage) { return new Status(reboot, vespaVersion, Optional.of(containerImage), failCount, wantToRetire, wantToDeprovision, osVersion, firmwareVerifiedAt); }
+ public Status withDockerImage(DockerImage dockerImage) { return new Status(reboot, vespaVersion, Optional.of(dockerImage), failCount, wantToRetire, wantToDeprovision, osVersion, firmwareVerifiedAt); }
/** Returns the docker image the node is running, if known */
- public Optional<ContainerImage> dockerImage() { return dockerImage; }
+ public Optional<DockerImage> dockerImage() { return dockerImage; }
public Status withIncreasedFailCount() { return new Status(reboot, vespaVersion, dockerImage, failCount + 1, wantToRetire, wantToDeprovision, osVersion, firmwareVerifiedAt); }
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 5f31c8e9522..cc62ae67e84 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
@@ -5,7 +5,7 @@ import com.google.common.util.concurrent.UncheckedTimeoutException;
import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ApplicationLockException;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.NodeFlavors;
import com.yahoo.config.provision.NodeType;
@@ -492,11 +492,11 @@ public class CuratorDatabaseClient {
// Docker images -----------------------------------------------------------
- public Map<NodeType, ContainerImage> readDockerImages() {
+ public Map<NodeType, DockerImage> readDockerImages() {
return read(dockerImagesPath, NodeTypeDockerImagesSerializer::fromJson).orElseGet(TreeMap::new);
}
- public void writeDockerImages(Map<NodeType, ContainerImage> dockerImages) {
+ public void writeDockerImages(Map<NodeType, DockerImage> dockerImages) {
NestedTransaction transaction = new NestedTransaction();
CuratorTransaction curatorTransaction = db.newCuratorTransactionIn(transaction);
curatorTransaction.add(CuratorOperations.setData(dockerImagesPath.getAbsolute(),
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
index 98c35ec5464..37842115949 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
@@ -6,7 +6,7 @@ import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.ClusterMembership;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.NodeFlavors;
@@ -291,14 +291,14 @@ public class NodeSerializer {
return Optional.of(Version.fromString(object.asString()));
}
- private Optional<ContainerImage> dockerImageRepoFromSlime(Inspector object) {
+ private Optional<DockerImage> dockerImageRepoFromSlime(Inspector object) {
if ( ! object.valid() || object.asString().isEmpty()) return Optional.empty();
- return Optional.of(ContainerImage.fromString(object.asString()));
+ return Optional.of(DockerImage.fromString(object.asString()));
}
- private Optional<ContainerImage> dockerImageFromSlime(Inspector object) {
+ private Optional<DockerImage> dockerImageFromSlime(Inspector object) {
if ( ! object.valid()) return Optional.empty();
- return Optional.of(ContainerImage.fromString(object.asString()));
+ return Optional.of(DockerImage.fromString(object.asString()));
}
private Optional<Instant> instantFromSlime(Inspector object) {
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/NodeTypeDockerImagesSerializer.java
index 6621d48844e..6615dff24e5 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/NodeTypeDockerImagesSerializer.java
@@ -1,7 +1,7 @@
// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.persistence;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.NodeType;
import com.yahoo.slime.Cursor;
import com.yahoo.slime.Inspector;
@@ -23,7 +23,7 @@ public class NodeTypeDockerImagesSerializer {
private NodeTypeDockerImagesSerializer() {}
- public static byte[] toJson(Map<NodeType, ContainerImage> dockerImages) {
+ public static byte[] toJson(Map<NodeType, DockerImage> dockerImages) {
Slime slime = new Slime();
Cursor object = slime.setObject();
dockerImages.forEach((nodeType, dockerImage) ->
@@ -35,11 +35,11 @@ public class NodeTypeDockerImagesSerializer {
}
}
- public static Map<NodeType, ContainerImage> fromJson(byte[] data) {
- Map<NodeType, ContainerImage> dockerImages = new TreeMap<>(); // Use TreeMap to sort by node type
+ public static Map<NodeType, DockerImage> fromJson(byte[] data) {
+ Map<NodeType, DockerImage> dockerImages = 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), ContainerImage.fromString(value.asString())));
+ dockerImages.put(NodeSerializer.nodeTypeFromString(key), DockerImage.fromString(value.asString())));
return dockerImages;
}
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
index ee3ff22474f..3f55307d1f3 100644
--- 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
@@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.provision.provisioning;
import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
-import com.yahoo.config.provision.ContainerImage;
+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;
@@ -26,7 +26,7 @@ public class DockerImages {
private static final Logger log = Logger.getLogger(DockerImages.class.getName());
private final CuratorDatabaseClient db;
- private final ContainerImage defaultImage;
+ private final DockerImage defaultImage;
private final Duration cacheTtl;
/**
@@ -34,13 +34,13 @@ public class DockerImages {
* 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, ContainerImage>> dockerImages;
+ private volatile Supplier<Map<NodeType, DockerImage>> dockerImages;
- public DockerImages(CuratorDatabaseClient db, ContainerImage defaultImage) {
+ public DockerImages(CuratorDatabaseClient db, DockerImage defaultImage) {
this(db, defaultImage, defaultCacheTtl);
}
- DockerImages(CuratorDatabaseClient db, ContainerImage defaultImage, Duration cacheTtl) {
+ DockerImages(CuratorDatabaseClient db, DockerImage defaultImage, Duration cacheTtl) {
this.db = db;
this.defaultImage = defaultImage;
this.cacheTtl = cacheTtl;
@@ -53,29 +53,29 @@ public class DockerImages {
}
/** Returns the current docker images for each node type */
- public Map<NodeType, ContainerImage> getDockerImages() {
+ 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 ContainerImage dockerImageFor(NodeType type) {
+ 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<ContainerImage> dockerImage) {
+ 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, ContainerImage> dockerImages = db.readDockerImages();
+ 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(ContainerImage::asString).orElse(null));
+ 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/NodePatcher.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodePatcher.java
index 3871ad6680a..19276a81ef8 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodePatcher.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/NodePatcher.java
@@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.provision.restapi;
import com.google.common.base.Suppliers;
import com.yahoo.component.Version;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.NodeFlavors;
import com.yahoo.config.provision.NodeResources;
@@ -101,7 +101,7 @@ public class NodePatcher {
case "currentDockerImage" :
if (node.flavor().getType() != Flavor.Type.DOCKER_CONTAINER)
throw new IllegalArgumentException("Docker image can only be set for docker containers");
- return node.with(node.status().withDockerImage(ContainerImage.fromString(asString(value))));
+ return node.with(node.status().withDockerImage(DockerImage.fromString(asString(value))));
case "vespaVersion" :
case "currentVespaVersion" :
return node.with(node.status().withVespaVersion(Version.fromString(asString(value))));
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 f469bd682f7..3efd6e417cb 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
@@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.provision.restapi;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterMembership;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.serialization.NetworkPortsSerializer;
@@ -211,7 +211,7 @@ class NodesResponse extends HttpResponse {
// Hack: For non-docker nodes, return current docker image as default prefix + current Vespa version
// TODO: Remove current + wanted docker image from response for non-docker types
- private Optional<ContainerImage> currentDockerImage(Node node) {
+ private Optional<DockerImage> currentDockerImage(Node node) {
return node.status().dockerImage()
.or(() -> Optional.of(node)
.filter(n -> n.flavor().getType() != Flavor.Type.DOCKER_CONTAINER)
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 a27b7d093fd..5080dafe2a5 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
@@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.provision.restapi;
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.Flavor;
import com.yahoo.config.provision.HostFilter;
import com.yahoo.config.provision.NodeFlavors;
@@ -390,11 +390,11 @@ public class NodesV2ApiHandler extends LoggingRequestHandler {
}
if (dockerImageField.valid()) {
- Optional<ContainerImage> dockerImage = Optional.of(dockerImageField.asString())
+ Optional<DockerImage> dockerImage = Optional.of(dockerImageField.asString())
.filter(s -> !s.isEmpty())
- .map(ContainerImage::fromString);
+ .map(DockerImage::fromString);
nodeRepository.dockerImages().setDockerImage(nodeType, dockerImage);
- messageParts.add("docker image to " + dockerImage.map(ContainerImage::asString).orElse(null));
+ messageParts.add("docker image to " + dockerImage.map(DockerImage::asString).orElse(null));
}
if (messageParts.isEmpty()) {
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
index bf993250253..f78560e3022 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
@@ -7,7 +7,7 @@ import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.InstanceName;
@@ -63,7 +63,7 @@ public class MockNodeRepository extends NodeRepository {
Clock.fixed(Instant.ofEpochMilli(123), ZoneId.of("Z")),
Zone.defaultZone(),
new MockNameResolver().mockAnyLookup(),
- ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
+ DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
false,
@@ -92,14 +92,14 @@ public class MockNodeRepository extends NodeRepository {
new Flavor(new NodeResources(1, 4, 100, 1, fast, local)), Optional.empty(), NodeType.tenant);
node4 = node4.with(node4.status()
.withVespaVersion(new Version("6.41.0"))
- .withDockerImage(ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa:6.41.0")));
+ .withDockerImage(DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa:6.41.0")));
nodes.add(node4);
Node node5 = createNode("node5", "host5.yahoo.com", ipConfig(5), Optional.of("dockerhost2.yahoo.com"),
new Flavor(new NodeResources(1, 8, 100, 1, slow, remote)), Optional.empty(), NodeType.tenant);
nodes.add(node5.with(node5.status()
.withVespaVersion(new Version("1.2.3"))
- .withDockerImage(ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa:1.2.3"))));
+ .withDockerImage(DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa:1.2.3"))));
nodes.add(createNode("node6", "host6.yahoo.com", ipConfig(6), Optional.empty(),
@@ -114,7 +114,7 @@ public class MockNodeRepository extends NodeRepository {
Status node10newStatus = node10.status();
node10newStatus = node10newStatus
.withVespaVersion(Version.fromString("5.104.142"))
- .withDockerImage(ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa:5.104.142"));
+ .withDockerImage(DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa:5.104.142"));
node10 = node10.with(node10newStatus);
nodes.add(node10);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
index 1a5a3995609..9b0500303d8 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.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.provision;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.NodeFlavors;
import com.yahoo.config.provision.NodeType;
@@ -40,7 +40,7 @@ public class NodeRepositoryTester {
clock,
Zone.defaultZone(),
new MockNameResolver().mockAnyLookup(),
- ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
+ DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java
index 382b37332a1..59e0dad9720 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java
@@ -11,7 +11,7 @@ import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterMembership;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.NodeFlavors;
@@ -63,7 +63,7 @@ public class CapacityCheckerTester {
clock,
zone,
new MockNameResolver().mockAnyLookup(),
- ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
+ DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
index 3726e846103..f8e21ebbfce 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
@@ -6,7 +6,7 @@ import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostSpec;
@@ -257,7 +257,7 @@ public class FailedExpirerTest {
clock,
zone,
new MockNameResolver().mockAnyLookup(),
- ContainerImage.fromString("docker-image"),
+ DockerImage.fromString("docker-image"),
new InMemoryFlagSource(),
true,
false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java
index f339dc6732b..39e873ee110 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.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.provision.maintenance;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.NodeFlavors;
import com.yahoo.config.provision.NodeType;
@@ -40,7 +40,7 @@ public class MaintenanceTester {
clock,
zone,
new MockNameResolver().mockAnyLookup(),
- ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
+ DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java
index 780e0a285ca..20c9d24d1b6 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java
@@ -4,7 +4,7 @@ package com.yahoo.vespa.hosted.provision.maintenance;
import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterMembership;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.NodeFlavors;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
@@ -84,7 +84,7 @@ public class MetricsReporterTest {
Clock.systemUTC(),
Zone.defaultZone(),
new MockNameResolver().mockAnyLookup(),
- ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
+ DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
false,
@@ -153,7 +153,7 @@ public class MetricsReporterTest {
Clock.systemUTC(),
Zone.defaultZone(),
new MockNameResolver().mockAnyLookup(),
- ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
+ DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java
index c37eb58b501..435dcdf9223 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java
@@ -5,7 +5,7 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostSpec;
@@ -81,7 +81,7 @@ public class NodeFailTester {
clock,
zone,
new MockNameResolver().mockAnyLookup(),
- ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
+ DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java
index af0bb1a6e2e..1ff00ff88a1 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java
@@ -6,7 +6,7 @@ import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.InstanceName;
@@ -60,7 +60,7 @@ public class OperatorChangeApplicationMaintainerTest {
clock,
zone,
new MockNameResolver().mockAnyLookup(),
- ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
+ DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java
index 5095f21f0cd..099282205fe 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java
@@ -6,7 +6,7 @@ import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Deployer;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.Flavor;
@@ -66,7 +66,7 @@ public class PeriodicApplicationMaintainerTest {
clock,
zone,
new MockNameResolver().mockAnyLookup(),
- ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
+ DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
index ee1328a1eea..bd92c2a9aa2 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
@@ -5,7 +5,7 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.NodeFlavors;
import com.yahoo.config.provision.NodeResources;
@@ -51,7 +51,7 @@ public class ReservationExpirerTest {
clock,
Zone.defaultZone(),
new MockNameResolver().mockAnyLookup(),
- ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
+ DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
index e9a1808dcdb..4e675d6a3cc 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
@@ -7,7 +7,7 @@ import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.Deployer;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostSpec;
@@ -70,7 +70,7 @@ public class RetiredExpirerTest {
clock,
zone,
new MockNameResolver().mockAnyLookup(),
- ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
+ DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java
index 6641c5c94a0..6cd206cd5b9 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java
@@ -4,7 +4,7 @@ package com.yahoo.vespa.hosted.provision.maintenance;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ClusterMembership;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.NodeFlavors;
@@ -245,7 +245,7 @@ public class SpareCapacityMaintainerTest {
new ManualClock(),
new Zone(Environment.prod, RegionName.from("us-east-3")),
new MockNameResolver().mockAnyLookup(),
- ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
+ DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
new InMemoryFlagSource(),
true,
false,
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/NodeTypeDockerImagesSerializerTest.java
index 0633f70900e..9bfcf67324a 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/NodeTypeDockerImagesSerializerTest.java
@@ -1,7 +1,7 @@
// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.persistence;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.NodeType;
import org.junit.Test;
@@ -17,11 +17,11 @@ public class NodeTypeDockerImagesSerializerTest {
@Test
public void test_serialization() {
- Map<NodeType, ContainerImage> images = new TreeMap<>();
- images.put(NodeType.host, ContainerImage.fromString("docker.domain.tld/my/repo:1.2.3"));
- images.put(NodeType.confighost, ContainerImage.fromString("docker.domain.tld/my/image:2.1"));
+ Map<NodeType, DockerImage> images = new TreeMap<>();
+ 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, ContainerImage> serialized = NodeTypeDockerImagesSerializer.fromJson(NodeTypeDockerImagesSerializer.toJson(images));
+ Map<NodeType, DockerImage> serialized = NodeTypeDockerImagesSerializer.fromJson(NodeTypeDockerImagesSerializer.toJson(images));
assertEquals(images, serialized);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerImagesTest.java
index 47989baa162..cd6ae587b04 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerImagesTest.java
@@ -1,7 +1,7 @@
// 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.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.flags.InMemoryFlagSource;
@@ -14,18 +14,18 @@ import static org.junit.Assert.assertEquals;
/**
* @author mpolden
*/
-public class ContainerImagesTest {
+public class DockerImagesTest {
@Test
public void image_selection() {
var flagSource = new InMemoryFlagSource();
var tester = new ProvisioningTester.Builder().flagSource(flagSource).build();
- var proxyImage = ContainerImage.fromString("docker-registry.domain.tld:8080/dist/proxy");
+ var proxyImage = DockerImage.fromString("docker-registry.domain.tld:8080/dist/proxy");
tester.nodeRepository().dockerImages().setDockerImage(NodeType.proxy, Optional.of(proxyImage));
// Host uses tenant default image (for preload purposes)
- var defaultImage = ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa");
+ var defaultImage = DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa");
var hosts = tester.makeReadyNodes(2, "default", NodeType.host);
tester.deployZoneApp();
for (var host : hosts) {
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java
index 0331ab7cf32..5c730912c49 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java
@@ -7,7 +7,7 @@ import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterMembership;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostFilter;
@@ -177,8 +177,8 @@ public class ProvisioningTest {
HostSpec host1 = state1.container0.iterator().next();
Node node1 = tester.nodeRepository().getNode(host1.hostname()).get();
- ContainerImage containerImage = ContainerImage.fromString(dockerImageRepo).withTag(Version.fromString("1.2.3"));
- tester.nodeRepository().write(node1.with(node1.status().withDockerImage(containerImage)), () -> {});
+ DockerImage dockerImage = DockerImage.fromString(dockerImageRepo).withTag(Version.fromString("1.2.3"));
+ tester.nodeRepository().write(node1.with(node1.status().withDockerImage(dockerImage)), () -> {});
// redeploy
SystemState state2 = prepare(application1, tester, 1, 1, 1 ,1 , false, defaultResources, "1.2.3", Optional.of(dockerImageRepo));
@@ -186,7 +186,7 @@ public class ProvisioningTest {
host1 = state2.container0.iterator().next();
node1 = tester.nodeRepository().getNode(host1.hostname()).get();
- assertEquals(containerImage, node1.status().dockerImage().get());
+ assertEquals(dockerImage, node1.status().dockerImage().get());
}
@Test
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
index d41d79796f6..d56cae799b2 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
@@ -7,7 +7,7 @@ import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.provision.ContainerImage;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.HostFilter;
import com.yahoo.config.provision.HostSpec;
@@ -103,7 +103,7 @@ public class ProvisioningTester {
clock,
zone,
nameResolver,
- ContainerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
+ DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"),
flagSource,
true,
provisionServiceProvider.getHostProvisioner().isPresent(),