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()

Reply via email to