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;
}