From 31aee6b4792578507545bffbe581c5d165a6f173 Mon Sep 17 00:00:00 2001 From: SbloodyS <460888207@qq.com> Date: Sat, 16 Apr 2022 16:43:37 +0800 Subject: [PATCH 1/4] fix #9525 --- .../plugin/task/api/TaskExecutionContext.java | 13 +++++++++++++ .../plugin/task/python/PythonTask.java | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskExecutionContext.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskExecutionContext.java index 581c73c8f1e2..d79d8253b3e5 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskExecutionContext.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskExecutionContext.java @@ -24,6 +24,8 @@ import java.util.Date; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * to master/worker task transport @@ -564,6 +566,17 @@ public void setEndTime(Date endTime) { this.endTime = endTime; } + public String getEnvironmentVariable(String variable) { + String pattern = String.format("%s=(.*)", variable); + Pattern reg = Pattern.compile(pattern); + Matcher matcher = reg.matcher(environmentConfig); + if (matcher.find()) { + return matcher.group(1); + } else { + return null; + } + } + @Override public String toString() { return "TaskExecutionContext{" diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java index 1df388f756f0..0c20aea71007 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java @@ -238,7 +238,7 @@ private String buildPythonScriptContent() throws Exception { private String buildPythonExecuteCommand(String pythonFile) { Preconditions.checkNotNull(pythonFile, "Python file cannot be null"); - String pythonHome = System.getenv(PYTHON_HOME); + String pythonHome = taskRequest.getEnvironmentVariable(PYTHON_HOME); if (StringUtils.isEmpty(pythonHome)) { return DEFAULT_PYTHON_VERSION + " " + pythonFile; } From 8b3bcb6609d5df6e344d7e477e0c376b22d5aae3 Mon Sep 17 00:00:00 2001 From: SbloodyS <460888207@qq.com> Date: Sat, 16 Apr 2022 17:14:50 +0800 Subject: [PATCH 2/4] change to ${PYTHON_HOME} --- .../plugin/task/api/TaskExecutionContext.java | 11 ----------- .../plugin/task/python/PythonTask.java | 6 ++---- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskExecutionContext.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskExecutionContext.java index d79d8253b3e5..2d060db408d5 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskExecutionContext.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskExecutionContext.java @@ -566,17 +566,6 @@ public void setEndTime(Date endTime) { this.endTime = endTime; } - public String getEnvironmentVariable(String variable) { - String pattern = String.format("%s=(.*)", variable); - Pattern reg = Pattern.compile(pattern); - Matcher matcher = reg.matcher(environmentConfig); - if (matcher.find()) { - return matcher.group(1); - } else { - return null; - } - } - @Override public String toString() { return "TaskExecutionContext{" diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java index 0c20aea71007..c153847b1878 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/main/java/org/apache/dolphinscheduler/plugin/task/python/PythonTask.java @@ -238,10 +238,8 @@ private String buildPythonScriptContent() throws Exception { private String buildPythonExecuteCommand(String pythonFile) { Preconditions.checkNotNull(pythonFile, "Python file cannot be null"); - String pythonHome = taskRequest.getEnvironmentVariable(PYTHON_HOME); - if (StringUtils.isEmpty(pythonHome)) { - return DEFAULT_PYTHON_VERSION + " " + pythonFile; - } + String pythonHome = String.format("${%s}", PYTHON_HOME); + return pythonHome + " " + pythonFile; } From 64139332307078acf7a77adcf91bfbb5b466146e Mon Sep 17 00:00:00 2001 From: SbloodyS <460888207@qq.com> Date: Sat, 16 Apr 2022 17:16:22 +0800 Subject: [PATCH 3/4] remove import --- .../dolphinscheduler/plugin/task/api/TaskExecutionContext.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskExecutionContext.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskExecutionContext.java index 2d060db408d5..581c73c8f1e2 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskExecutionContext.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskExecutionContext.java @@ -24,8 +24,6 @@ import java.util.Date; import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; /** * to master/worker task transport From 0aa74125e866fe6e8c7d87092cac49c3a09f4a84 Mon Sep 17 00:00:00 2001 From: SbloodyS <460888207@qq.com> Date: Sat, 16 Apr 2022 17:30:31 +0800 Subject: [PATCH 4/4] fix ut error --- .../dolphinscheduler/plugin/task/python/PythonTaskTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/test/java/org/apache/dolphinscheduler/plugin/task/python/PythonTaskTest.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/test/java/org/apache/dolphinscheduler/plugin/task/python/PythonTaskTest.java index 08c5e0d8cff9..7df534217937 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/test/java/org/apache/dolphinscheduler/plugin/task/python/PythonTaskTest.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-python/src/test/java/org/apache/dolphinscheduler/plugin/task/python/PythonTaskTest.java @@ -29,7 +29,7 @@ public void buildPythonExecuteCommand() throws Exception { String methodName = "buildPythonExecuteCommand"; String pythonFile = "test.py"; String result1 = Whitebox.invokeMethod(pythonTask, methodName, pythonFile); - Assert.assertEquals("python test.py", result1); + Assert.assertEquals("${PYTHON_HOME} test.py", result1); } private PythonTask createPythonTask() {