From c5e7b4281933be1bb479b42e0b11fa9acab00a2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Mathieu?= Date: Wed, 29 Jan 2025 10:20:05 +0100 Subject: [PATCH] fix(script): injectDefault need the runContext Otherwise you cannot render dynamic properties inside it --- .../plugin/scripts/exec/AbstractExecScript.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/script/src/main/java/io/kestra/plugin/scripts/exec/AbstractExecScript.java b/script/src/main/java/io/kestra/plugin/scripts/exec/AbstractExecScript.java index 9462c92e7ec..ac572bd81c6 100644 --- a/script/src/main/java/io/kestra/plugin/scripts/exec/AbstractExecScript.java +++ b/script/src/main/java/io/kestra/plugin/scripts/exec/AbstractExecScript.java @@ -121,6 +121,14 @@ public abstract class AbstractExecScript extends Task implements RunnableTask getContainerImage(); + /** + * @deprecated use {@link #injectDefaults(RunContext, DockerOptions)} + */ + @Deprecated(forRemoval = true, since = "0.21") + protected DockerOptions injectDefaults(@NotNull DockerOptions original) { + return original; + } + /** * Allow setting Docker options defaults values. * To make it work, it is advised to set the 'docker' field like: @@ -135,8 +143,9 @@ public abstract class AbstractExecScript extends Task implements RunnableTask */ - protected DockerOptions injectDefaults(@NotNull DockerOptions original) { - return original; + protected DockerOptions injectDefaults(RunContext runContext, @NotNull DockerOptions original) { + // FIXME to keep backward compatibility, we call the old method from the new one by default + return injectDefaults(original); } protected CommandsWrapper commands(RunContext runContext) throws IllegalVariableEvaluationException { @@ -151,7 +160,7 @@ protected CommandsWrapper commands(RunContext runContext) throws IllegalVariable .withRunnerType(this.getRunner()) .withContainerImage(runContext.render(this.getContainerImage()).as(String.class).orElse(null)) .withTaskRunner(this.getTaskRunner()) - .withDockerOptions(this.getDocker() != null ? this.injectDefaults(this.getDocker()) : null) + .withDockerOptions(this.getDocker() != null ? this.injectDefaults(runContext, this.getDocker()) : null) .withNamespaceFiles(this.getNamespaceFiles()) .withInputFiles(this.getInputFiles()) .withOutputFiles(runContext.render(this.getOutputFiles()).asList(String.class))