Browse Source

EnterpriseWeChatUtils modify (#2502)

* dispatch task fail will set task status failed

* 1,no worker condition , master will while ture wait for worker startup
2,worker response task status sync wait for result

* 1,no worker condition , master will while ture wait for worker startup
2,worker response task status sync wait for result

* 1,no worker condition , master will while ture wait for worker startup
2,worker response task status sync wait for result

* 1,no worker condition , master will while ture wait for worker startup
2,worker response task status sync wait for result

* 1,no worker condition , master will while ture wait for worker startup
2,worker response task status sync wait for result

* 1,no worker condition , master will while ture wait for worker startup
2,worker response task status sync wait for result

* 1,no worker condition , master will while ture wait for worker startup
2,worker response task status sync wait for result

* 1,no worker condition , master will while ture wait for worker startup
2,worker response task status sync wait for result

* 1,no worker condition , master will while ture wait for worker startup
2,worker response task status sync wait for result

* 1,no worker condition , master will while ture wait for worker startup
2,worker response task status sync wait for result

* 1,no worker condition , master will while ture wait for worker startup
2,worker response task status sync wait for result

* 1,task status statistics and process status statistics bug fix (#2357)
2,worker group bug fix

* 1,task status statistics and process status statistics bug fix (#2357)
2,worker group bug fix

* 1,task status statistics and process status statistics bug fix (#2357)
2,worker group bug fix

* 1,task status statistics and process status statistics bug fix (#2357)
2,worker group bug fix

* send mail error, #2466 bug fix

* send mail error, #2466 bug fix

* send mail error, #2466 bug fix

* send mail error, #2466 bug fix

* #2486 bug fix

* host and workergroup compatible

* EnterpriseWeChatUtils modify

* EnterpriseWeChatUtils modify

* EnterpriseWeChatUtils modify

Co-authored-by: qiaozhanwei <qiaozhanwei@analysys.com.cn>
qiaozhanwei 5 years ago
parent
commit
e837a73fcd

+ 12 - 2
dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/utils/EnterpriseWeChatUtilsTest.java

@@ -21,6 +21,7 @@ import org.apache.dolphinscheduler.common.enums.AlertType;
 import org.apache.dolphinscheduler.common.enums.ShowType;
 import org.apache.dolphinscheduler.dao.entity.Alert;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -54,11 +55,19 @@ public class EnterpriseWeChatUtilsTest {
     private static final String enterpriseWechatUsers="LiGang,journey";
     private static final String msg = "hello world";
 
+    private static final String enterpriseWechatTeamSendMsg = "{\\\"toparty\\\":\\\"$toParty\\\",\\\"agentid\\\":\\\"$agentId\\\",\\\"msgtype\\\":\\\"text\\\",\\\"text\\\":{\\\"content\\\":\\\"$msg\\\"},\\\"safe\\\":\\\"0\\\"}";
+    private static final String enterpriseWechatUserSendMsg = "{\\\"touser\\\":\\\"$toUser\\\",\\\"agentid\\\":\\\"$agentId\\\",\\\"msgtype\\\":\\\"markdown\\\",\\\"markdown\\\":{\\\"content\\\":\\\"$msg\\\"}}";
 
-    @Test
-    public void testIsEnable(){
+    @Before
+    public void init(){
         PowerMockito.mockStatic(PropertyUtils.class);
         Mockito.when(PropertyUtils.getBoolean(Constants.ENTERPRISE_WECHAT_ENABLE)).thenReturn(true);
+        Mockito.when(PropertyUtils.getString(Constants.ENTERPRISE_WECHAT_USER_SEND_MSG)).thenReturn(enterpriseWechatUserSendMsg);
+        Mockito.when(PropertyUtils.getString(Constants.ENTERPRISE_WECHAT_TEAM_SEND_MSG)).thenReturn(enterpriseWechatTeamSendMsg);
+    }
+
+    @Test
+    public void testIsEnable(){
         Boolean weChartEnable = EnterpriseWeChatUtils.isEnable();
         Assert.assertTrue(weChartEnable);
     }
@@ -88,6 +97,7 @@ public class EnterpriseWeChatUtilsTest {
 
     @Test
     public void tesMakeUserSendMsg1(){
+
         String sendMsg = EnterpriseWeChatUtils.makeUserSendMsg(enterpriseWechatUsers, enterpriseWechatAgentId, msg);
         Assert.assertTrue(sendMsg.contains(enterpriseWechatUsers));
         Assert.assertTrue(sendMsg.contains(enterpriseWechatAgentId));

+ 23 - 10
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/LoggerService.java

@@ -65,25 +65,24 @@ public class LoggerService {
 
     TaskInstance taskInstance = processService.findTaskInstanceById(taskInstId);
 
-    if (taskInstance == null){
-      return new Result(Status.TASK_INSTANCE_NOT_FOUND.getCode(), Status.TASK_INSTANCE_NOT_FOUND.getMsg());
-    }
-
-    String host = Host.of(taskInstance.getHost()).getIp();
-    if(StringUtils.isEmpty(host)){
+    if (taskInstance == null || StringUtils.isBlank(taskInstance.getHost())){
       return new Result(Status.TASK_INSTANCE_NOT_FOUND.getCode(), Status.TASK_INSTANCE_NOT_FOUND.getMsg());
     }
 
+    String host = getHost(taskInstance.getHost());
 
     Result result = new Result(Status.SUCCESS.getCode(), Status.SUCCESS.getMsg());
 
     logger.info("log host : {} , logPath : {} , logServer port : {}",host,taskInstance.getLogPath(),Constants.RPC_PORT);
+
     String log = logClient.rollViewLog(host, Constants.RPC_PORT, taskInstance.getLogPath(),skipLineNum,limit);
     result.setData(log);
-    logger.info(log);
     return result;
   }
 
+
+
+
   /**
    * get log size
    *
@@ -92,10 +91,24 @@ public class LoggerService {
    */
   public byte[] getLogBytes(int taskInstId) {
     TaskInstance taskInstance = processService.findTaskInstanceById(taskInstId);
-    if (taskInstance == null){
-      throw new RuntimeException("task instance is null");
+    if (taskInstance == null || StringUtils.isBlank(taskInstance.getHost())){
+      throw new RuntimeException("task instance is null or host is null");
     }
-    String host = Host.of(taskInstance.getHost()).getIp();
+    String host = getHost(taskInstance.getHost());
+
     return logClient.getLogBytes(host, Constants.RPC_PORT, taskInstance.getLogPath());
   }
+
+
+  /**
+   * get host
+   * @param address address
+   * @return old version return true ,otherwise return false
+   */
+  private String getHost(String address){
+    if (Host.isOldVersion(address)){
+      return address;
+    }
+    return Host.of(address).getIp();
+  }
 }

+ 10 - 0
dolphinscheduler-remote/src/main/java/org/apache/dolphinscheduler/remote/utils/Host.java

@@ -91,6 +91,16 @@ public class Host implements Serializable {
         return host;
     }
 
+    /**
+     * whether old version
+     * @param address address
+     * @return old version is true , otherwise is false
+     */
+    public static Boolean isOldVersion(String address){
+        String[] parts = address.split(":");
+        return parts.length != 2 ? true : false;
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) {