summaryrefslogtreecommitdiffstats
path: root/node-admin/src/test/java
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2021-11-10 21:34:14 +0100
committerValerij Fredriksen <valerijf@yahooinc.com>2021-11-11 12:29:17 +0100
commit62e75d484add5efa87ffecb063d05cdb6a5f3585 (patch)
tree935d6f2cbbe5f4209ecc4b3afbb34ec78dd65191 /node-admin/src/test/java
parent1ceb982f59439e283e64b684a80256e97a740691 (diff)
Remove parentId from Image
Diffstat (limited to 'node-admin/src/test/java')
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerEngineMock.java2
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/image/ContainerImagePrunerTest.java91
2 files changed, 19 insertions, 74 deletions
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerEngineMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerEngineMock.java
index 4507c424c98..21118ff8914 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerEngineMock.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerEngineMock.java
@@ -120,7 +120,7 @@ public class ContainerEngineMock implements ContainerEngine {
@Override
public void pullImage(TaskContext context, DockerImage image, RegistryCredentials registryCredentials) {
String imageId = image.asString();
- ImageDownload imageDownload = images.computeIfAbsent(imageId, (ignored) -> new ImageDownload(new Image(imageId, Optional.empty(), List.of(imageId))));
+ ImageDownload imageDownload = images.computeIfAbsent(imageId, (ignored) -> new ImageDownload(new Image(imageId, List.of(imageId))));
if (!asyncImageDownload) {
imageDownload.complete();
}
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/image/ContainerImagePrunerTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/image/ContainerImagePrunerTest.java
index 43d3fe94552..2b62f637474 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/image/ContainerImagePrunerTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/image/ContainerImagePrunerTest.java
@@ -10,17 +10,12 @@ import com.yahoo.vespa.hosted.node.admin.container.ContainerEngineMock;
import com.yahoo.vespa.hosted.node.admin.container.ContainerId;
import com.yahoo.vespa.hosted.node.admin.container.ContainerName;
import com.yahoo.vespa.hosted.node.admin.container.ContainerResources;
-import com.yahoo.vespa.hosted.node.admin.container.image.ContainerImagePruner;
-import com.yahoo.vespa.hosted.node.admin.container.image.Image;
import org.junit.Test;
import java.time.Duration;
-import java.util.Arrays;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import static org.junit.Assert.assertTrue;
@@ -54,70 +49,31 @@ public class ContainerImagePrunerTest {
.expectDeletedImages();
}
-
@Test
public void multipleUnusedImagesAreIdentified() {
tester.withExistingImages(image("image-1"), image("image-2"))
.expectDeletedImages("image-1", "image-2");
}
-
- @Test
- public void multipleUnusedLeavesAreIdentified() {
- tester.withExistingImages(image("parent-image"),
- image("image-1", "parent-image"),
- image("image-2", "parent-image"))
- .expectDeletedImages("image-1", "image-2", "parent-image");
- }
-
-
- @Test
- public void unusedLeafWithUsedSiblingIsIdentified() {
- tester.withExistingImages(image("parent-image"),
- image("image-1", "parent-image", "latest"),
- image("image-2", "parent-image", "1.24"))
- .withExistingContainers(container("vespa-node-1", "image-1"))
- .expectDeletedImages("1.24"); // Deleting the only tag will delete the image
- }
-
-
@Test
public void unusedImagesWithMultipleTags() {
- tester.withExistingImages(image("parent-image"),
- image("image-1", "parent-image", "vespa-6", "vespa-6.28", "vespa:latest"))
- .expectDeletedImages("vespa-6", "vespa-6.28", "vespa:latest", "parent-image");
+ tester.withExistingImages(image("image-1", "vespa-6", "vespa-6.28", "vespa:latest"))
+ .expectDeletedImages("vespa-6", "vespa-6.28", "vespa:latest");
}
-
@Test
public void unusedImagesWithMultipleUntagged() {
- tester.withExistingImages(image("image1", null, "<none>:<none>"),
- image("image2", null, "<none>:<none>"))
+ tester.withExistingImages(image("image1", "<none>:<none>"),
+ image("image2", "<none>:<none>"))
.expectDeletedImages("image1", "image2");
}
-
@Test
public void taggedImageWithNoContainersIsUnused() {
- tester.withExistingImages(image("image-1", null, "vespa-6"))
+ tester.withExistingImages(image("image-1", "vespa-6"))
.expectDeletedImages("vespa-6");
}
-
- @Test
- public void unusedImagesWithSimpleImageGc() {
- tester.withExistingImages(image("parent-image"))
- .expectDeletedImagesAfterMinutes(30)
- .withExistingImages(image("parent-image"),
- image("image-1", "parent-image"))
- .expectDeletedImagesAfterMinutes(0)
- .expectDeletedImagesAfterMinutes(30)
- // At this point, parent-image has been unused for 1h, but image-1 depends on parent-image and it has
- // only been unused for 30m, so we cannot delete parent-image yet. 30 mins later both can be removed
- .expectDeletedImagesAfterMinutes(30, "image-1", "parent-image");
- }
-
-
@Test
public void reDownloadingImageIsNotImmediatelyDeleted() {
tester.withExistingImages(image("image"))
@@ -127,50 +83,39 @@ public class ContainerImagePrunerTest {
.expectDeletedImages("image"); // 1h after re-download it is deleted again
}
-
@Test
public void reDownloadingImageIsNotImmediatelyDeletedWhenDeletingByTag() {
- tester.withExistingImages(image("image", null, "image-1", "my-tag"))
- .expectDeletedImages("image-1", "my-tag") // After 1h we delete image
+ tester.withExistingImages(image("image", "my-tag"))
+ .expectDeletedImages("my-tag") // After 1h we delete image
.expectDeletedImagesAfterMinutes(0) // image is immediately re-downloaded, but is not deleted
.expectDeletedImagesAfterMinutes(10)
- .expectDeletedImages("image-1", "my-tag"); // 1h after re-download it is deleted again
+ .expectDeletedImages("my-tag"); // 1h after re-download it is deleted again
}
/** Same scenario as in {@link #multipleUnusedImagesAreIdentified()} */
@Test
public void doesNotDeleteExcludedByIdImages() {
- tester.withExistingImages(image("parent-image"),
- image("image-1", "parent-image"),
- image("image-2", "parent-image"))
- // Normally, image-1 and parent-image should also be deleted, but because we exclude image-1
- // we cannot delete parent-image, so only image-2 is deleted
+ tester.withExistingImages(image("image-1"), image("image-2"))
+ // Normally, image-1 should also be deleted, but because we exclude image-1 only image-2 is deleted
.expectDeletedImages(List.of("image-1"), "image-2");
}
/** Same as in {@link #doesNotDeleteExcludedByIdImages()} but with tags */
@Test
public void doesNotDeleteExcludedByTagImages() {
- tester.withExistingImages(image("parent-image", "rhel-6"),
- image("image-1", "parent-image", "vespa:6.288.16"),
- image("image-2", "parent-image", "vespa:6.289.94"))
+ tester.withExistingImages(image("image-1", "vespa:6.288.16"), image("image-2", "vespa:6.289.94"))
.expectDeletedImages(List.of("vespa:6.288.16"), "vespa:6.289.94");
}
@Test
- public void exludingNotDownloadedImageIsNoop() {
- tester.withExistingImages(image("parent-image", "rhel-6"),
- image("image-1", "parent-image", "vespa:6.288.16"),
- image("image-2", "parent-image", "vespa:6.289.94"))
+ public void excludingNotDownloadedImageIsNoop() {
+ tester.withExistingImages(image("image-1", "vespa:6.288.16"),
+ image("image-2", "vespa:6.289.94"))
.expectDeletedImages(List.of("vespa:6.300.1"), "vespa:6.288.16", "vespa:6.289.94", "rhel-6");
}
- private static Image image(String id) {
- return image(id, null);
- }
-
- private static Image image(String id, String parentId, String... tags) {
- return new Image(id, Optional.ofNullable(parentId), List.of(tags));
+ private static Image image(String id, String... tags) {
+ return new Image(id, List.of(tags));
}
private static Container container(String name, String imageId) {
@@ -209,7 +154,7 @@ public class ContainerImagePrunerTest {
}
private Tester expectDeletedImagesAfterMinutes(int minutesAfter, String... imageIds) {
- return expectDeletedImagesAfterMinutes(minutesAfter, Collections.emptyList(), imageIds);
+ return expectDeletedImagesAfterMinutes(minutesAfter, List.of(), imageIds);
}
private Tester expectDeletedImagesAfterMinutes(int minutesAfter, List<String> excludedRefs, String... imageIds) {
@@ -223,7 +168,7 @@ public class ContainerImagePrunerTest {
pruner.removeUnusedImages(context, excludedRefs, Duration.ofHours(1).minusSeconds(1));
- Arrays.stream(imageIds)
+ List.of(imageIds)
.forEach(imageId -> {
int newValue = removalCountByImageId.getOrDefault(imageId, 0) + 1;
removalCountByImageId.put(imageId, newValue);