This is an automated email from the ASF dual-hosted git repository.

cdeppisch 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 b856f7f36d0 Improve JBang Kubernetes export to print failure details
b856f7f36d0 is described below

commit b856f7f36d04b936baa2f6747131c79850c116da
Author: Christoph Deppisch <[email protected]>
AuthorDate: Mon Aug 12 09:23:59 2024 +0200

    Improve JBang Kubernetes export to print failure details
    
    - Print error details when export fails for some reason
---
 .../core/commands/kubernetes/KubernetesExport.java    |  3 ++-
 .../jbang/core/commands/kubernetes/KubernetesRun.java | 19 +++++++++++++++----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
 
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
index 6f3565d8850..f476c110d40 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExport.java
@@ -187,7 +187,8 @@ public class KubernetesExport extends Export {
             sources = SourceHelper.resolveSources(files);
         } catch (Exception e) {
             if (!quiet) {
-                printer().printf("Project export failed - %s%n", 
e.getMessage());
+                printer().printf("Project export failed: %s - %s%n", 
e.getMessage(),
+                        
Optional.ofNullable(e.getCause()).map(Throwable::getMessage).orElse("unknown 
reason"));
             }
             return 1;
         }
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 34f5376d237..48fca276082 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
@@ -30,10 +30,12 @@ import io.fabric8.kubernetes.api.model.Pod;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
 import org.apache.camel.dsl.jbang.core.commands.kubernetes.traits.BaseTrait;
+import org.apache.camel.dsl.jbang.core.common.Printer;
 import org.apache.camel.dsl.jbang.core.common.RuntimeCompletionCandidates;
 import org.apache.camel.dsl.jbang.core.common.RuntimeType;
 import org.apache.camel.dsl.jbang.core.common.RuntimeTypeConverter;
 import org.apache.camel.dsl.jbang.core.common.SourceScheme;
+import org.apache.camel.dsl.jbang.core.common.StringPrinter;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.support.FileWatcherResourceReloadStrategy;
 import org.apache.camel.util.FileUtil;
@@ -172,6 +174,13 @@ public class KubernetesRun extends KubernetesBaseCommand {
 
         String workingDir = RUN_PLATFORM_DIR + "/" + projectName;
 
+        printer().println("Exporting application ...");
+
+        // Cache export output in String for later usage in case of error
+        Printer runPrinter = printer();
+        StringPrinter exportPrinter = new StringPrinter();
+        getMain().withPrinter(exportPrinter);
+
         KubernetesExport export = new KubernetesExport(
                 getMain(), new KubernetesExport.ExportConfigurer(
                         runtime,
@@ -185,7 +194,7 @@ public class KubernetesRun extends KubernetesBaseCommand {
                         openApi,
                         true,
                         true,
-                        true,
+                        false,
                         false,
                         "off"));
 
@@ -206,11 +215,13 @@ public class KubernetesRun extends KubernetesBaseCommand {
         export.labels = labels;
         export.traits = traits;
 
-        printer().println("Exporting application ...");
-
         int exit = export.export();
+
+        // Revert printer to this run command's printer
+        getMain().withPrinter(runPrinter);
         if (exit != 0) {
-            printer().println("Project export failed");
+            // print export command output with error details
+            printer().println(exportPrinter.getOutput());
             return exit;
         }
 

Reply via email to