You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by jo...@apache.org on 2020/05/12 08:46:23 UTC

[incubator-dolphinscheduler] branch dev-1.3.0 updated: [bug fix] some bugs from 1.2.0 to 1.3.0 (#2676)

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

journey pushed a commit to branch dev-1.3.0
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git


The following commit(s) were added to refs/heads/dev-1.3.0 by this push:
     new d994718  [bug fix] some bugs from 1.2.0 to 1.3.0 (#2676)
d994718 is described below

commit d99471806eab2257f0fa13f3d028f098157b0d0e
Author: bao liang <29...@users.noreply.github.com>
AuthorDate: Tue May 12 16:46:16 2020 +0800

    [bug fix] some bugs from 1.2.0 to 1.3.0 (#2676)
    
    * fix bug: some bugs about worker group from 1.2.0 to 1.3.0
    
    * fix bug: scheduler from 1.2.0 to 1.3.0 do not work
    
    * fix bug: scheduler from 1.2.0 to 1.3.0 do not work
    
    * fix ut bug
    
    Co-authored-by: baoliang <ba...@analysys.com.cn>
---
 .../alert/template/impl/DefaultHTMLTemplate.java   |  3 +-
 .../dolphinscheduler/alert/utils/Constants.java    |  4 +++
 .../template/impl/DefaultHTMLTemplateTest.java     | 37 +++-------------------
 .../server/master/runner/MasterExecThread.java     |  1 +
 .../service/process/ProcessService.java            |  1 +
 .../service/quartz/ProcessScheduleJob.java         |  4 ++-
 .../1.3.0_schema/mysql/dolphinscheduler_dml.sql    |  3 +-
 .../postgresql/dolphinscheduler_dml.sql            |  3 +-
 8 files changed, 20 insertions(+), 36 deletions(-)

diff --git a/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/template/impl/DefaultHTMLTemplate.java b/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/template/impl/DefaultHTMLTemplate.java
index 7039d7c..b5ba755 100644
--- a/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/template/impl/DefaultHTMLTemplate.java
+++ b/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/template/impl/DefaultHTMLTemplate.java
@@ -35,6 +35,7 @@ public class DefaultHTMLTemplate implements AlertTemplate {
 
     public static final Logger logger = LoggerFactory.getLogger(DefaultHTMLTemplate.class);
 
+
     @Override
     public String getMessageFromTemplate(String content, ShowType showType,boolean showAll) {
 
@@ -140,7 +141,7 @@ public class DefaultHTMLTemplate implements AlertTemplate {
         checkNotNull(content);
         String htmlTableThead = StringUtils.isEmpty(title) ? "" : String.format("<thead>%s</thead>\n",title);
 
-        return "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'><html><head><title>dolphinscheduler</title><meta name='Keywords' content=''><meta name='Description' content=''><style type=\"text/css\">table {margin-top:0px;padding-top:0px;border:1px solid;font-size: 14px;color: #333333;border-width: 1px;border-color: #666666;border-collapse: collapse;}table th {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;b [...]
+        return Constants.HTML_HEADER_PREFIX +htmlTableThead + content + Constants.TABLE_BODY_HTML_TAIL;
     }
 
 }
diff --git a/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/utils/Constants.java b/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/utils/Constants.java
index 8fa38c6..540b1a9 100644
--- a/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/utils/Constants.java
+++ b/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/utils/Constants.java
@@ -157,6 +157,10 @@ public class Constants {
 
     public static final String ENTERPRISE_WECHAT_USERS = "enterprise.wechat.users";
 
+    public static final String HTML_HEADER_PREFIX = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'><html><head><title>dolphinscheduler</title><meta name='Keywords' content=''><meta name='Description' content=''><style type=\"text/css\">table {margin-top:0px;padding-top:0px;border:1px solid;font-size: 14px;color: #333333;border-width: 1px;border-color: #666666;border-collapse: collapse;}table th {border-width: 1px;padding: 8px;border [...]
+
+    public static final String TABLE_BODY_HTML_TAIL = "</table></body></html>";
+
     /**
      * plugin config
      */
diff --git a/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/template/impl/DefaultHTMLTemplateTest.java b/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/template/impl/DefaultHTMLTemplateTest.java
index 58609c0..52d5853 100644
--- a/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/template/impl/DefaultHTMLTemplateTest.java
+++ b/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/template/impl/DefaultHTMLTemplateTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.dolphinscheduler.alert.template.impl;
 
+import org.apache.dolphinscheduler.alert.utils.Constants;
 import org.apache.dolphinscheduler.alert.utils.JSONUtils;
 import org.apache.dolphinscheduler.common.enums.ShowType;
 import org.junit.Test;
@@ -82,42 +83,14 @@ public class DefaultHTMLTemplateTest{
 
     private String generateMockTableTypeResultByHand(){
 
-        return "<html>\n" +
-                "    <head>\n" +
-                "        <title>dolphinscheduler</title>\n" +
-                "        <meta name='Keywords' content=''>\n" +
-                "        <meta name='Description' content=''>\n" +
-                "        <style type=\"text/css\">\n" +
-                "            table {margin-top:0px;padding-top:0px;border:1px solid;font-size: 14px;color: #333333;border-width: 1px;border-color: #666666;border-collapse: collapse;}\n" +
-                "            table th {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;text-align: right;}\n" +
-                "            table td {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;text-align: right;}\n" +
-                "        </style>\n" +
-                "    </head>\n" +
-                "    <body style=\"margin:0;padding:0\">\n" +
-                "        <table border=\"1px\" cellpadding=\"5px\" cellspacing=\"-10px\">\n" +
+        return Constants.HTML_HEADER_PREFIX +
                 "<thead><tr><th>mysql service name</th><th>mysql address</th><th>port</th><th>no index of number</th><th>database client connections</th></tr></thead>\n" +
-                "<tr><td>mysql200</td><td>192.168.xx.xx</td><td>3306</td><td>80</td><td>190</td></tr><tr><td>mysql210</td><td>192.168.xx.xx</td><td>3306</td><td>10</td><td>90</td></tr>        </table>\n" +
-                "    </body>\n" +
-                "</html>";
+                "<tr><td>mysql200</td><td>192.168.xx.xx</td><td>3306</td><td>80</td><td>190</td></tr><tr><td>mysql210</td><td>192.168.xx.xx</td><td>3306</td><td>10</td><td>90</td></tr>" + Constants.TABLE_BODY_HTML_TAIL;
+
     }
 
     private String generateMockTextTypeResultByHand(){
 
-        return "<html>\n" +
-                "    <head>\n" +
-                "        <title>dolphinscheduler</title>\n" +
-                "        <meta name='Keywords' content=''>\n" +
-                "        <meta name='Description' content=''>\n" +
-                "        <style type=\"text/css\">\n" +
-                "            table {margin-top:0px;padding-top:0px;border:1px solid;font-size: 14px;color: #333333;border-width: 1px;border-color: #666666;border-collapse: collapse;}\n" +
-                "            table th {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;text-align: right;}\n" +
-                "            table td {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;text-align: right;}\n" +
-                "        </style>\n" +
-                "    </head>\n" +
-                "    <body style=\"margin:0;padding:0\">\n" +
-                "        <table border=\"1px\" cellpadding=\"5px\" cellspacing=\"-10px\">\n" +
-                "<tr><td>{\"mysql service name\":\"mysql200\",\"mysql address\":\"192.168.xx.xx\",\"database client connections\":\"190\",\"port\":\"3306\",\"no index of number\":\"80\"}</td></tr><tr><td>{\"mysql service name\":\"mysql210\",\"mysql address\":\"192.168.xx.xx\",\"database client connections\":\"90\",\"port\":\"3306\",\"no index of number\":\"10\"}</td></tr>        </table>\n" +
-                "    </body>\n" +
-                "</html>";
+        return Constants.HTML_HEADER_PREFIX + "<tr><td>{\"mysql service name\":\"mysql200\",\"mysql address\":\"192.168.xx.xx\",\"database client connections\":\"190\",\"port\":\"3306\",\"no index of number\":\"80\"}</td></tr><tr><td>{\"mysql service name\":\"mysql210\",\"mysql address\":\"192.168.xx.xx\",\"database client connections\":\"90\",\"port\":\"3306\",\"no index of number\":\"10\"}</td></tr>" + Constants.TABLE_BODY_HTML_TAIL;
     }
 }
diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java
index e0110ad..462e30c 100644
--- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java
+++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java
@@ -496,6 +496,7 @@ public class MasterExecThread implements Runnable {
             }
 
             String processWorkerGroup = processInstance.getWorkerGroup();
+            processWorkerGroup = StringUtils.isBlank(processWorkerGroup) ? DEFAULT_WORKER_GROUP : processWorkerGroup;
             String taskWorkerGroup = StringUtils.isBlank(taskNode.getWorkerGroup()) ? processWorkerGroup : taskNode.getWorkerGroup();
             if (!processWorkerGroup.equals(DEFAULT_WORKER_GROUP) && taskWorkerGroup.equals(DEFAULT_WORKER_GROUP)) {
                 taskInstance.setWorkerGroup(processWorkerGroup);
diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
index e0ebaf4..d9faf8c 100644
--- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
+++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
@@ -926,6 +926,7 @@ public class ProcessService {
         command.setCommandParam(processMapStr);
         command.setCommandType(commandType);
         command.setProcessInstancePriority(parentProcessInstance.getProcessInstancePriority());
+        command.setWorkerGroup(parentProcessInstance.getWorkerGroup());
         createCommand(command);
         logger.info("sub process command created: {} ", command.toString());
     }
diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/ProcessScheduleJob.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/ProcessScheduleJob.java
index c89b7af..6ac847b 100644
--- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/ProcessScheduleJob.java
+++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/ProcessScheduleJob.java
@@ -32,6 +32,7 @@ import org.quartz.JobExecutionException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.Assert;
+import org.springframework.util.StringUtils;
 
 import java.util.Date;
 
@@ -98,7 +99,8 @@ public class ProcessScheduleJob implements Job {
         command.setScheduleTime(scheduledFireTime);
         command.setStartTime(fireTime);
         command.setWarningGroupId(schedule.getWarningGroupId());
-        command.setWorkerGroup(schedule.getWorkerGroup());
+        String workerGroup = StringUtils.isEmpty(schedule.getWorkerGroup()) ? Constants.DEFAULT_WORKER_GROUP : schedule.getWorkerGroup();
+        command.setWorkerGroup(workerGroup);
         command.setWarningType(schedule.getWarningType());
         command.setProcessInstancePriority(schedule.getProcessInstancePriority());
 
diff --git a/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_dml.sql b/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_dml.sql
index 7fb3bc2..67b005f 100644
--- a/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_dml.sql
+++ b/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_dml.sql
@@ -17,4 +17,5 @@
 SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
 SET FOREIGN_KEY_CHECKS=0;
 UPDATE t_ds_resources SET pid=-1,is_directory=false WHERE pid IS NULL;
-UPDATE t_ds_resources SET full_name = concat('/',alias) WHERE pid=-1 and full_name IS NULL;
\ No newline at end of file
+UPDATE t_ds_resources SET full_name = concat('/',alias) WHERE pid=-1 and full_name IS NULL;
+UPDATE QRTZ_JOB_DETAILS SET JOB_CLASS_NAME='org.apache.dolphinscheduler.service.quartz.ProcessScheduleJob' WHERE JOB_CLASS_NAME='org.apache.dolphinscheduler.server.quartz.ProcessScheduleJob';
diff --git a/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_dml.sql b/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_dml.sql
index f892fa8..abf85cd 100644
--- a/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_dml.sql
+++ b/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_dml.sql
@@ -15,4 +15,5 @@
  * limitations under the License.
 */
 UPDATE t_ds_resources SET pid=-1,is_directory=false WHERE pid IS NULL;
-UPDATE t_ds_resources SET full_name = concat('/',alias) WHERE pid=-1 and full_name IS NULL;
\ No newline at end of file
+UPDATE t_ds_resources SET full_name = concat('/',alias) WHERE pid=-1 and full_name IS NULL;
+UPDATE QRTZ_JOB_DETAILS SET JOB_CLASS_NAME='org.apache.dolphinscheduler.service.quartz.ProcessScheduleJob' WHERE JOB_CLASS_NAME='org.apache.dolphinscheduler.server.quartz.ProcessScheduleJob';
\ No newline at end of file