This is an automated email from the ASF dual-hosted git repository. kerwin pushed a commit to branch 3.1.3-prepare in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
commit 32a76ee419a5aff98a1fd0034e354fa176ce21db Author: HuangWei <[email protected]> AuthorDate: Wed Dec 14 20:13:45 2022 +0800 cherry-pick [Fix-13187] refactor OpenmldbParameters #13190 --- .../dolphinscheduler/common/utils/JSONUtils.java | 8 +++++++ .../plugin/task/openmldb/OpenmldbParameters.java | 25 ++-------------------- .../plugin/task/openmldb/OpenmldbTask.java | 18 ++++++---------- 3 files changed, 16 insertions(+), 35 deletions(-) diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java index 8c0edcb696..4f43a4ebe5 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java @@ -325,6 +325,14 @@ public class JSONUtils { } } + public static String toPrettyJsonString(Object object) { + try { + return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(object); + } catch (Exception e) { + throw new RuntimeException("Object json deserialization exception.", e); + } + } + /** * serialize to json byte * diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-openmldb/src/main/java/org/apache/dolphinscheduler/plugin/task/openmldb/OpenmldbParameters.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-openmldb/src/main/java/org/apache/dolphinscheduler/plugin/task/openmldb/OpenmldbParameters.java index 0db8aaea6d..a8685e45c8 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-openmldb/src/main/java/org/apache/dolphinscheduler/plugin/task/openmldb/OpenmldbParameters.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-openmldb/src/main/java/org/apache/dolphinscheduler/plugin/task/openmldb/OpenmldbParameters.java @@ -17,14 +17,11 @@ package org.apache.dolphinscheduler.plugin.task.openmldb; -import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo; -import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters; +import org.apache.dolphinscheduler.plugin.task.python.PythonParameters; import org.apache.commons.lang3.StringUtils; -import java.util.List; - -public class OpenmldbParameters extends AbstractParameters { +public class OpenmldbParameters extends PythonParameters { private String zk; private String zkPath; @@ -34,11 +31,6 @@ public class OpenmldbParameters extends AbstractParameters { */ private String sql; - /** - * resource list - */ - private List<ResourceInfo> resourceList; - public String getZk() { return zk; } @@ -71,21 +63,8 @@ public class OpenmldbParameters extends AbstractParameters { this.sql = sql; } - public List<ResourceInfo> getResourceList() { - return resourceList; - } - - public void setResourceList(List<ResourceInfo> resourceList) { - this.resourceList = resourceList; - } - @Override public boolean checkParameters() { return StringUtils.isNotEmpty(zk) && StringUtils.isNotEmpty(zkPath) && StringUtils.isNotEmpty(sql); } - - @Override - public List<ResourceInfo> getResourceFilesList() { - return this.resourceList; - } } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-openmldb/src/main/java/org/apache/dolphinscheduler/plugin/task/openmldb/OpenmldbTask.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-openmldb/src/main/java/org/apache/dolphinscheduler/plugin/task/openmldb/OpenmldbTask.java index 8adf717300..93341c67a8 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-openmldb/src/main/java/org/apache/dolphinscheduler/plugin/task/openmldb/OpenmldbTask.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-openmldb/src/main/java/org/apache/dolphinscheduler/plugin/task/openmldb/OpenmldbTask.java @@ -21,7 +21,6 @@ import org.apache.dolphinscheduler.common.utils.JSONUtils; import org.apache.dolphinscheduler.plugin.task.api.TaskException; import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext; import org.apache.dolphinscheduler.plugin.task.api.model.Property; -import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters; import org.apache.dolphinscheduler.plugin.task.api.parser.ParamUtils; import org.apache.dolphinscheduler.plugin.task.api.parser.ParameterUtils; import org.apache.dolphinscheduler.plugin.task.python.PythonTask; @@ -42,9 +41,8 @@ import com.google.common.base.Preconditions; public class OpenmldbTask extends PythonTask { /** - * openmldb parameters + * openmldb parameters: cast pythonParameters to OpenmldbParameters */ - private OpenmldbParameters openmldbParameters; /** * python process(openmldb only supports version 3 by default) @@ -63,11 +61,10 @@ public class OpenmldbTask extends PythonTask { @Override public void init() { - logger.info("openmldb task params {}", taskRequest.getTaskParams()); + pythonParameters = JSONUtils.parseObject(taskRequest.getTaskParams(), OpenmldbParameters.class); - openmldbParameters = JSONUtils.parseObject(taskRequest.getTaskParams(), OpenmldbParameters.class); - - if (openmldbParameters == null || !openmldbParameters.checkParameters()) { + logger.info("Initialize openmldb task params {}", JSONUtils.toPrettyJsonString(pythonParameters)); + if (pythonParameters == null || !pythonParameters.checkParameters()) { throw new TaskException("openmldb task params is not valid"); } } @@ -78,11 +75,6 @@ public class OpenmldbTask extends PythonTask { return ""; } - @Override - public AbstractParameters getParameters() { - return openmldbParameters; - } - /** * build python command file path * @@ -100,6 +92,7 @@ public class OpenmldbTask extends PythonTask { */ @Override protected String buildPythonScriptContent() { + OpenmldbParameters openmldbParameters = (OpenmldbParameters) pythonParameters; logger.info("raw sql script : {}", openmldbParameters.getSql()); String rawSQLScript = openmldbParameters.getSql().replaceAll("[\\r]?\\n", "\n"); @@ -117,6 +110,7 @@ public class OpenmldbTask extends PythonTask { StringBuilder builder = new StringBuilder("import openmldb\nimport sqlalchemy as db\n"); // connect to openmldb + OpenmldbParameters openmldbParameters = (OpenmldbParameters) pythonParameters; builder.append(String.format("engine = db.create_engine('openmldb:///?zk=%s&zkPath=%s')\n", openmldbParameters.getZk(), openmldbParameters.getZkPath())); builder.append("con = engine.connect()\n");
