This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 7ca98b79061 [CAMEL-21227] camel k8s run ignores output format (#15576) 7ca98b79061 is described below commit 7ca98b79061bafb98d7f83afd328f59fe70dd969 Author: Thomas Diesler <tdies...@redhat.com> AuthorDate: Wed Sep 18 06:37:04 2024 +0200 [CAMEL-21227] camel k8s run ignores output format (#15576) --- .../core/commands/kubernetes/KubernetesHelper.java | 23 +++++++++++----------- .../core/commands/kubernetes/KubernetesRun.java | 3 ++- .../commands/kubernetes/KubernetesBaseTest.java | 8 +++++++- .../commands/kubernetes/KubernetesRunTest.java | 3 ++- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesHelper.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesHelper.java index 3228754ed5c..5512848f133 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesHelper.java +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesHelper.java @@ -19,7 +19,6 @@ package org.apache.camel.dsl.jbang.core.commands.kubernetes; import java.io.File; import java.io.FileNotFoundException; -import java.util.Arrays; import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -169,21 +168,23 @@ public final class KubernetesHelper { } public static File resolveKubernetesManifest(File workingDir, String extension) throws FileNotFoundException { + + // Try explicit Kubernetes manifest first + String clusterType = ClusterType.KUBERNETES.name(); + File manifest = getKubernetesManifest(clusterType, workingDir, extension); + if (manifest.exists()) { + return manifest; + } + // Try arbitrary Kubernetes manifest first - File manifest = getKubernetesManifest(ClusterType.KUBERNETES.name(), workingDir); + manifest = getKubernetesManifest(clusterType, workingDir); if (manifest.exists()) { return manifest; } - // try to resolve from all the other cluster type specific manifests - return Arrays.stream(ClusterType.values()) - .filter(ct -> ct != ClusterType.KUBERNETES) - .map(ct -> getKubernetesManifest(ct.name(), workingDir, extension)) - .filter(File::exists) - .findFirst() - .orElseThrow(() -> new FileNotFoundException( - "Unable to resolve Kubernetes manifest file type `%s` in folder: %s" - .formatted(extension, workingDir.toPath().toString()))); + throw new FileNotFoundException( + "Unable to resolve Kubernetes manifest file type `%s` in folder: %s" + .formatted(extension, workingDir.toPath().toString())); } public static File getKubernetesManifest(String clusterType, String workingDir) { diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java index f61c65d7bc3..6c8c1edbc1f 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java @@ -279,7 +279,8 @@ public class KubernetesRun extends KubernetesBaseCommand { File manifest; switch (output) { - case "yaml" -> manifest = KubernetesHelper.resolveKubernetesManifest(workingDir + "/target/kubernetes"); + case "yaml" -> + manifest = KubernetesHelper.resolveKubernetesManifest(workingDir + "/target/kubernetes"); case "json" -> manifest = KubernetesHelper.resolveKubernetesManifest(workingDir + "/target/kubernetes", "json"); default -> { diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseTest.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseTest.java index 985450ca5f2..4341b564c6e 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseTest.java +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesBaseTest.java @@ -70,7 +70,13 @@ public class KubernetesBaseTest { } protected InputStream getKubernetesManifestAsStream(String printerOutput) { - return new ByteArrayInputStream(StringHelper.after(printerOutput, "---").getBytes(StandardCharsets.UTF_8)); + return getKubernetesManifestAsStream(printerOutput, "yaml"); } + protected InputStream getKubernetesManifestAsStream(String printerOutput, String output) { + if (output.equals("yaml")) { + return new ByteArrayInputStream(StringHelper.after(printerOutput, "---").getBytes(StandardCharsets.UTF_8)); + } + throw new RuntimeException("Unsupported output format: " + output); + } } diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java index afcee4a94a5..739bb7fa836 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRunTest.java @@ -81,7 +81,8 @@ class KubernetesRunTest extends KubernetesBaseTest { Assertions.assertEquals(0, exit); - List<HasMetadata> resources = kubernetesClient.load(getKubernetesManifestAsStream(printer.getOutput())).items(); + var manifest = getKubernetesManifestAsStream(printer.getOutput(), command.output); + List<HasMetadata> resources = kubernetesClient.load(manifest).items(); Assertions.assertEquals(2, resources.size()); Deployment deployment = resources.stream()