From fb5f07e51c561b3b44913beafecbb0c39ccff10c Mon Sep 17 00:00:00 2001 From: Jan Heise Date: Wed, 6 Sep 2023 07:36:46 +0200 Subject: [PATCH] DataNode: Use the correct architecture for the distribution jar in tests (#16372) * fix to use the correct architecture for the distribution jar * added check for archive * added missing import --- .../org/graylog/datanode/OpensearchDistribution.java | 2 +- .../testinfra/DatanodeContainerizedBackend.java | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/data-node/src/main/java/org/graylog/datanode/OpensearchDistribution.java b/data-node/src/main/java/org/graylog/datanode/OpensearchDistribution.java index 4f21caf1c1..7fb0dba48d 100644 --- a/data-node/src/main/java/org/graylog/datanode/OpensearchDistribution.java +++ b/data-node/src/main/java/org/graylog/datanode/OpensearchDistribution.java @@ -81,7 +81,7 @@ public record OpensearchDistribution(Path directory, String version, @Nullable S .orElseThrow(() -> new IllegalArgumentException("No Opensearch distribution found for architecture " + osArch))); } - private static String archCode(final String osArch) { + public static String archCode(final String osArch) { return switch (osArch) { case "amd64" -> "x64"; case "x86_64" -> "x64"; diff --git a/data-node/src/test/java/org/graylog/datanode/testinfra/DatanodeContainerizedBackend.java b/data-node/src/test/java/org/graylog/datanode/testinfra/DatanodeContainerizedBackend.java index e41db8f656..bf5a5b1cdf 100644 --- a/data-node/src/test/java/org/graylog/datanode/testinfra/DatanodeContainerizedBackend.java +++ b/data-node/src/test/java/org/graylog/datanode/testinfra/DatanodeContainerizedBackend.java @@ -16,6 +16,7 @@ */ package org.graylog.datanode.testinfra; +import org.graylog.datanode.OpensearchDistribution; import org.graylog.testing.completebackend.DefaultMavenProjectDirProvider; import org.graylog.testing.completebackend.DefaultPluginJarsProvider; import org.graylog.testing.graylognode.MavenPackager; @@ -26,6 +27,7 @@ import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; import org.testcontainers.images.builder.ImageFromDockerfile; import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import java.time.Duration; import java.util.Collections; @@ -113,7 +115,13 @@ public class DatanodeContainerizedBackend { } private static ImageFromDockerfile createDockerImageFile(String opensearchVersion) { - final String opensearchTarArchive = "opensearch-" + opensearchVersion + "-linux-x64.tar.gz"; + final String opensearchTarArchive = "opensearch-" + opensearchVersion + "-linux-" + OpensearchDistribution.archCode(System.getProperty("os.arch")) + ".tar.gz"; + final Path downloadedOpensearch = Path.of("target", "downloads", opensearchTarArchive); + + if(!Files.exists(downloadedOpensearch)) { + throw new RuntimeException("Failed to link opensearch distribution to the datanode docker image, path" + downloadedOpensearch.toAbsolutePath() + " doesn't exist!"); + } + return new ImageFromDockerfile("local/graylog-datanode:latest", false) // the following command makes the opensearch tar.gz archive accessible in the docker build context, so it can // be later used by the ADD command