diff options
author | Håkon Hallingstad <hakon@verizonmedia.com> | 2020-09-07 15:06:53 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@verizonmedia.com> | 2020-09-07 15:06:53 +0200 |
commit | e858dfe2815e6ffda326f69f1a62bcb0f4c2c3db (patch) | |
tree | fd8ec0e8c682497147f0ecf3ca2a6eee9d00c8dc /docker-api/src | |
parent | db9105023dc06c7ca56a2914735dba663bd21d5c (diff) |
Move to container engine neutral names
Diffstat (limited to 'docker-api/src')
-rw-r--r-- | docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Container.java | 6 | ||||
-rw-r--r-- | docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerEngine.java (renamed from docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java) | 19 | ||||
-rw-r--r-- | docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java | 46 | ||||
-rw-r--r-- | docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollector.java | 16 | ||||
-rw-r--r-- | docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java | 52 | ||||
-rw-r--r-- | docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/ContainerImageGarbageCollectionTest.java (renamed from docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollectionTest.java) | 10 | ||||
-rw-r--r-- | docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImplTest.java | 8 | ||||
-rw-r--r-- | docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImplTest.java | 6 |
8 files changed, 81 insertions, 82 deletions
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 1e861f230ce..2eed86a26de 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.DockerImage; +import com.yahoo.config.provision.ContainerImage; import java.util.Objects; @@ -10,7 +10,7 @@ import java.util.Objects; */ public class Container { public final String hostname; - public final DockerImage image; + public final ContainerImage 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 DockerImage image, + final ContainerImage image, final ContainerResources resources, final ContainerName containerName, final State state, diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerEngine.java index 477d0edf8be..2ba82b83287 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.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.DockerImage; +import com.yahoo.config.provision.ContainerImage; import java.net.InetAddress; import java.nio.file.Path; @@ -11,10 +11,9 @@ import java.util.Optional; import java.util.OptionalLong; /** - * API to simplify the com.github.dockerjava API for clients, - * and to avoid OSGi exporting those classes. + * API that hides the access to a specific container engine like Docker or Podman. */ -public interface Docker { +public interface ContainerEngine { interface CreateContainerCommand { CreateContainerCommand withHostName(String hostname); @@ -23,7 +22,7 @@ public interface Docker { CreateContainerCommand withEnvironment(String name, String value); /** - * Mounts a directory on host inside the docker container. + * Mounts a directory on host inside the container. * * <p>Bind mount content will be <b>private</b> to this container (and host) only. * @@ -38,7 +37,7 @@ public interface Docker { CreateContainerCommand withVolume(Path path, Path volumePath); /** - * Mounts a directory on host inside the docker container. + * Mounts a directory on host inside the container. * * <p>The bind mount content will be <b>shared</b> among multiple containers. * @@ -59,7 +58,7 @@ public interface Docker { void create(); } - CreateContainerCommand createContainerCommand(DockerImage dockerImage, ContainerName containerName); + CreateContainerCommand createContainerCommand(ContainerImage containerImage, ContainerName containerName); Optional<ContainerStats> getContainerStats(ContainerName containerName); @@ -77,14 +76,14 @@ public interface Docker { * Checks if the image is currently being pulled or is already pulled, if not, starts an async * pull of the image * - * @param image Docker image to pull + * @param image Container image to pull * @return true iff image being pulled, false otherwise */ - boolean pullImageAsyncIfNeeded(DockerImage image); + boolean pullImageAsyncIfNeeded(ContainerImage image); boolean noManagedContainersRunning(String manager); - boolean deleteUnusedDockerImages(List<DockerImage> excludes, Duration minImageAgeToDelete); + boolean deleteUnusedContainerImages(List<ContainerImage> 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 30d79c57296..38c3074afe5 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.DockerImage; +import com.yahoo.config.provision.ContainerImage; import com.yahoo.vespa.hosted.dockerapi.exception.DockerException; import java.net.Inet6Address; @@ -26,10 +26,10 @@ import java.util.stream.Stream; import static com.yahoo.vespa.hosted.dockerapi.DockerImpl.LABEL_NAME_MANAGEDBY; -class CreateContainerCommandImpl implements Docker.CreateContainerCommand { +class CreateContainerCommandImpl implements ContainerEngine.CreateContainerCommand { private final DockerClient docker; - private final DockerImage dockerImage; + private final ContainerImage containerImage; private final ContainerName containerName; private final Map<String, String> labels = new HashMap<>(); private final List<String> environmentAssignments = new ArrayList<>(); @@ -48,74 +48,74 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand { private Optional<String[]> entrypoint = Optional.empty(); private boolean privileged = false; - CreateContainerCommandImpl(DockerClient docker, DockerImage dockerImage, ContainerName containerName) { + CreateContainerCommandImpl(DockerClient docker, ContainerImage containerImage, ContainerName containerName) { this.docker = docker; - this.dockerImage = dockerImage; + this.containerImage = containerImage; this.containerName = containerName; } @Override - public Docker.CreateContainerCommand withHostName(String hostName) { + public ContainerEngine.CreateContainerCommand withHostName(String hostName) { this.hostName = Optional.of(hostName); return this; } @Override - public Docker.CreateContainerCommand withResources(ContainerResources containerResources) { + public ContainerEngine.CreateContainerCommand withResources(ContainerResources containerResources) { this.containerResources = Optional.of(containerResources); return this; } @Override - public Docker.CreateContainerCommand withLabel(String name, String value) { + public ContainerEngine.CreateContainerCommand withLabel(String name, String value) { assert !name.contains("="); labels.put(name, value); return this; } - public Docker.CreateContainerCommand withManagedBy(String manager) { + public ContainerEngine.CreateContainerCommand withManagedBy(String manager) { return withLabel(LABEL_NAME_MANAGEDBY, manager); } @Override - public Docker.CreateContainerCommand withAddCapability(String capabilityName) { + public ContainerEngine.CreateContainerCommand withAddCapability(String capabilityName) { addCapabilities.add(Capability.valueOf(capabilityName)); return this; } @Override - public Docker.CreateContainerCommand withDropCapability(String capabilityName) { + public ContainerEngine.CreateContainerCommand withDropCapability(String capabilityName) { dropCapabilities.add(Capability.valueOf(capabilityName)); return this; } @Override - public Docker.CreateContainerCommand withSecurityOpt(String securityOpt) { + public ContainerEngine.CreateContainerCommand withSecurityOpt(String securityOpt) { securityOpts.add(securityOpt); return this; } @Override - public Docker.CreateContainerCommand withDnsOption(String dnsOption) { + public ContainerEngine.CreateContainerCommand withDnsOption(String dnsOption) { dnsOptions.add(dnsOption); return this; } @Override - public Docker.CreateContainerCommand withPrivileged(boolean privileged) { + public ContainerEngine.CreateContainerCommand withPrivileged(boolean privileged) { this.privileged = privileged; return this; } @Override - public Docker.CreateContainerCommand withUlimit(String name, int softLimit, int hardLimit) { + public ContainerEngine.CreateContainerCommand withUlimit(String name, int softLimit, int hardLimit) { ulimits.add(new Ulimit(name, softLimit, hardLimit)); return this; } @Override - public Docker.CreateContainerCommand withEntrypoint(String... entrypoint) { + public ContainerEngine.CreateContainerCommand withEntrypoint(String... entrypoint) { if (entrypoint.length < 1) throw new IllegalArgumentException("Entrypoint must contain at least 1 element"); this.entrypoint = Optional.of(entrypoint); return this; @@ -123,32 +123,32 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand { @Override - public Docker.CreateContainerCommand withEnvironment(String name, String value) { + public ContainerEngine.CreateContainerCommand withEnvironment(String name, String value) { assert name.indexOf('=') == -1; environmentAssignments.add(name + "=" + value); return this; } @Override - public Docker.CreateContainerCommand withVolume(Path path, Path volumePath) { + public ContainerEngine.CreateContainerCommand withVolume(Path path, Path volumePath) { volumeBindSpecs.add(path + ":" + volumePath + ":Z"); return this; } @Override - public Docker.CreateContainerCommand withSharedVolume(Path path, Path volumePath) { + public ContainerEngine.CreateContainerCommand withSharedVolume(Path path, Path volumePath) { volumeBindSpecs.add(path + ":" + volumePath + ":z"); return this; } @Override - public Docker.CreateContainerCommand withNetworkMode(String mode) { + public ContainerEngine.CreateContainerCommand withNetworkMode(String mode) { networkMode = Optional.of(mode); return this; } @Override - public Docker.CreateContainerCommand withIpAddress(InetAddress address) { + public ContainerEngine.CreateContainerCommand withIpAddress(InetAddress address) { if (address instanceof Inet6Address) { ipv6Address = Optional.of(address.getHostAddress()); } else { @@ -190,7 +190,7 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand { .withCpuQuota(cr.cpuQuota() > 0 ? (long) cr.cpuQuota() : null)); final CreateContainerCmd containerCmd = docker - .createContainerCmd(dockerImage.asString()) + .createContainerCmd(containerImage.asString()) .withHostConfig(hostConfig) .withName(containerName.asString()) .withLabels(labels) @@ -255,7 +255,7 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand { toOptionalOption("--ip6", ipv6Address), toOptionalOption("--entrypoint", entrypointExecuteable), toFlagOption("--privileged", privileged), - dockerImage.asString(), + containerImage.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 e2116f7037e..d4b44b8dff6 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.DockerImage; +import com.yahoo.config.provision.ContainerImage; 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<DockerImage> excludes, Duration minImageAgeToDelete) { + boolean deleteUnusedDockerImages(List<ContainerImage> 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 - dockerImageToImageIds(excludes, images).stream()) // 2 + containerImageToImageIds(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(DockerImage.fromString(imageReference)); + docker.deleteImage(ContainerImage.fromString(imageReference)); }); lastTimeUsedByImageId.remove(image.getId()); }) @@ -152,18 +152,18 @@ class DockerImageGarbageCollector { } /** - * Attemps to make dockerImages which may be image tags or image ids to image ids. This only works + * Attemps to make containerImages 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> dockerImageToImageIds(List<DockerImage> dockerImages, List<Image> images) { + private Set<String> containerImageToImageIds(List<ContainerImage> containerImages, 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 dockerImages.stream() - .map(DockerImage::asString) + return containerImages.stream() + .map(ContainerImage::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 eb795de89b6..15bafa9b561 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,8 +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.DockerImage; -import java.util.logging.Level; +import com.yahoo.config.provision.ContainerImage; import com.yahoo.vespa.hosted.dockerapi.exception.ContainerNotFoundException; import com.yahoo.vespa.hosted.dockerapi.exception.DockerException; import com.yahoo.vespa.hosted.dockerapi.exception.DockerExecTimeoutException; @@ -40,10 +39,11 @@ import java.util.OptionalLong; import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Stream; -public class DockerImpl implements Docker { +public class DockerImpl implements ContainerEngine { private static final Logger logger = Logger.getLogger(DockerImpl.class.getName()); static final String LABEL_NAME_MANAGEDBY = "com.yahoo.vespa.managedby"; @@ -51,7 +51,7 @@ public class DockerImpl implements Docker { private static final Duration WAIT_BEFORE_KILLING = Duration.ofSeconds(10); private final Object monitor = new Object(); - private final Set<DockerImage> scheduledPulls = new HashSet<>(); + private final Set<ContainerImage> scheduledPulls = new HashSet<>(); private final DockerClient dockerClient; private final DockerImageGarbageCollector dockerImageGC; @@ -70,7 +70,7 @@ public class DockerImpl implements Docker { } @Override - public boolean pullImageAsyncIfNeeded(DockerImage image) { + public boolean pullImageAsyncIfNeeded(ContainerImage image) { try { synchronized (monitor) { if (scheduledPulls.contains(image)) return true; @@ -89,7 +89,7 @@ public class DockerImpl implements Docker { } } - private void removeScheduledPoll(DockerImage image) { + private void removeScheduledPoll(ContainerImage image) { synchronized (monitor) { scheduledPulls.remove(image); } @@ -98,23 +98,23 @@ public class DockerImpl implements Docker { /** * Check if a given image is already in the local registry */ - boolean imageIsDownloaded(DockerImage dockerImage) { - return inspectImage(dockerImage).isPresent(); + boolean imageIsDownloaded(ContainerImage containerImage) { + return inspectImage(containerImage).isPresent(); } - private Optional<InspectImageResponse> inspectImage(DockerImage dockerImage) { + private Optional<InspectImageResponse> inspectImage(ContainerImage containerImage) { try { - return Optional.of(dockerClient.inspectImageCmd(dockerImage.asString()).exec()); + return Optional.of(dockerClient.inspectImageCmd(containerImage.asString()).exec()); } catch (NotFoundException e) { return Optional.empty(); } catch (RuntimeException e) { numberOfDockerApiFails.increment(); - throw new DockerException("Failed to inspect image '" + dockerImage.asString() + "'", e); + throw new DockerException("Failed to inspect image '" + containerImage.asString() + "'", e); } } @Override - public CreateContainerCommand createContainerCommand(DockerImage image, ContainerName containerName) { + public CreateContainerCommand createContainerCommand(ContainerImage image, ContainerName containerName) { return new CreateContainerCommandImpl(dockerClient, image, containerName); } @@ -265,7 +265,7 @@ public class DockerImpl implements Docker { return inspectContainerCmd(container) .map(response -> new Container( response.getConfig().getHostName(), - DockerImage.fromString(response.getConfig().getImage()), + ContainerImage.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 Docker { } } - void deleteImage(DockerImage dockerImage) { + void deleteImage(ContainerImage containerImage) { try { - dockerClient.removeImageCmd(dockerImage.asString()).exec(); + dockerClient.removeImageCmd(containerImage.asString()).exec(); } catch (NotFoundException ignored) { // Image was already deleted, ignore } catch (RuntimeException e) { numberOfDockerApiFails.increment(); - throw new DockerException("Failed to delete docker image " + dockerImage.asString(), e); + throw new DockerException("Failed to delete docker image " + containerImage.asString(), e); } } @Override - public boolean deleteUnusedDockerImages(List<DockerImage> excludes, Duration minImageAgeToDelete) { + public boolean deleteUnusedContainerImages(List<ContainerImage> excludes, Duration minImageAgeToDelete) { return dockerImageGC.deleteUnusedDockerImages(excludes, minImageAgeToDelete); } private class ImagePullCallback extends PullImageResultCallback { - private final DockerImage dockerImage; + private final ContainerImage containerImage; - private ImagePullCallback(DockerImage dockerImage) { - this.dockerImage = dockerImage; + private ImagePullCallback(ContainerImage containerImage) { + this.containerImage = containerImage; } @Override public void onError(Throwable throwable) { - removeScheduledPoll(dockerImage); - logger.log(Level.SEVERE, "Could not download image " + dockerImage.asString(), throwable); + removeScheduledPoll(containerImage); + logger.log(Level.SEVERE, "Could not download image " + containerImage.asString(), throwable); } @Override public void onComplete() { - if (imageIsDownloaded(dockerImage)) { - logger.log(Level.INFO, "Download completed: " + dockerImage.asString()); - removeScheduledPoll(dockerImage); + if (imageIsDownloaded(containerImage)) { + logger.log(Level.INFO, "Download completed: " + containerImage.asString()); + removeScheduledPoll(containerImage); } else { numberOfDockerApiFails.increment(); - throw new DockerClientException("Could not download image: " + dockerImage); + throw new DockerClientException("Could not download image: " + containerImage); } } } diff --git a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollectionTest.java b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/ContainerImageGarbageCollectionTest.java index 40c4cb167a2..92c0e52bd6f 100644 --- a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerImageGarbageCollectionTest.java +++ b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/ContainerImageGarbageCollectionTest.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.DockerImage; +import com.yahoo.config.provision.ContainerImage; import com.yahoo.test.ManualClock; import org.junit.Test; @@ -28,7 +28,7 @@ import static org.mockito.Mockito.when; /** * @author freva */ -public class DockerImageGarbageCollectionTest { +public class ContainerImageGarbageCollectionTest { private final ImageGcTester gcTester = new ImageGcTester(); @@ -173,7 +173,7 @@ public class DockerImageGarbageCollectionTest { private final DockerImpl docker = mock(DockerImpl.class); private final ManualClock clock = new ManualClock(); private final DockerImageGarbageCollector imageGC = new DockerImageGarbageCollector(docker, clock); - private final Map<DockerImage, Integer> numDeletes = new HashMap<>(); + private final Map<ContainerImage, Integer> numDeletes = new HashMap<>(); private boolean initialized = false; private ImageGcTester withExistingImages(ImageBuilder... images) { @@ -211,11 +211,11 @@ public class DockerImageGarbageCollectionTest { clock.advance(Duration.ofMinutes(minutesAfter)); imageGC.deleteUnusedDockerImages( - except.stream().map(DockerImage::fromString).collect(Collectors.toList()), + except.stream().map(ContainerImage::fromString).collect(Collectors.toList()), Duration.ofHours(1).minusSeconds(1)); Arrays.stream(imageIds) - .map(DockerImage::fromString) + .map(ContainerImage::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/CreateContainerCommandImplTest.java b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImplTest.java index 57d2c738904..ea92186e8bd 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.DockerImage; +import com.yahoo.config.provision.ContainerImage; import org.junit.Test; import java.net.InetAddress; @@ -14,13 +14,13 @@ public class CreateContainerCommandImplTest { @Test public void testToString() throws UnknownHostException { - DockerImage dockerImage = DockerImage.fromString("docker.registry.domain.tld/my/image:1.2.3"); + ContainerImage containerImage = ContainerImage.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); - Docker.CreateContainerCommand createContainerCommand = new CreateContainerCommandImpl( - null, dockerImage, containerName) + ContainerEngine.CreateContainerCommand createContainerCommand = new CreateContainerCommandImpl( + null, containerImage, containerName) .withHostName(hostname) .withResources(containerResources) .withLabel("my-label", "test-label") 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 1ca6cd5662e..5387bc390fe 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.DockerImage; +import com.yahoo.config.provision.ContainerImage; 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 DockerImage image = DockerImage.fromString("test:1.2.3"); + final ContainerImage image = ContainerImage.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 DockerImage image = DockerImage.fromString("test:1.2.3"); + final ContainerImage image = ContainerImage.fromString("test:1.2.3"); InspectImageCmd imageInspectCmd = mock(InspectImageCmd.class); when(imageInspectCmd.exec()).thenThrow(new NotFoundException("Image not found")); |