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

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


The following commit(s) were added to refs/heads/dev by this push:
     new aa07b08  [fix][Alert-plugin ]Fixed SQLTask content, JSON Formate 
exceptions. (#4724)
aa07b08 is described below

commit aa07b081b407b5b820b43a9729436ae114a97678
Author: felix.wang <[email protected]>
AuthorDate: Sun Feb 7 23:52:51 2021 +0800

    [fix][Alert-plugin ]Fixed SQLTask content, JSON Formate exceptions. (#4724)
    
    * Fixed SQLTask content, JSON Formate exceptions.
    
    * add ut
    
    * add ut
    
    * fix code smell
---
 .../plugin/alert/feishu/FeiShuSender.java          | 23 +++++++--------------
 .../plugin/alert/feishu/FeiShuSenderTest.java      | 24 ++++++++++++++++++++++
 2 files changed, 31 insertions(+), 16 deletions(-)

diff --git 
a/dolphinscheduler-alert-plugin/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSender.java
 
b/dolphinscheduler-alert-plugin/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSender.java
index 4eee390..8fdafe7 100644
--- 
a/dolphinscheduler-alert-plugin/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSender.java
+++ 
b/dolphinscheduler-alert-plugin/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSender.java
@@ -23,9 +23,7 @@ import org.apache.dolphinscheduler.spi.utils.JSONUtils;
 
 import org.apache.commons.codec.binary.StringUtils;
 import org.apache.http.HttpEntity;
-import org.apache.http.HttpHost;
 import org.apache.http.HttpStatus;
-import org.apache.http.client.config.RequestConfig;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.impl.client.CloseableHttpClient;
@@ -71,11 +69,6 @@ public class FeiShuSender {
 
     }
 
-    private static RequestConfig getProxyConfig(String proxy, int port) {
-        HttpHost httpProxy = new HttpHost(proxy, port);
-        return RequestConfig.custom().setProxy(httpProxy).build();
-    }
-
     private static String textToJsonString(AlertData alertData) {
 
         Map<String, Object> items = new HashMap<>(2);
@@ -88,7 +81,7 @@ public class FeiShuSender {
         return JSONUtils.toJsonString(items);
     }
 
-    private static AlertResult checkSendFeiShuSendMsgResult(String result) {
+    public static AlertResult checkSendFeiShuSendMsgResult(String result) {
         AlertResult alertResult = new AlertResult();
         alertResult.setStatus("false");
 
@@ -116,12 +109,10 @@ public class FeiShuSender {
 
     public static String formatContent(AlertData alertData) {
         if (alertData.getContent() != null) {
-            List<Map> list;
-            try {
-                list = JSONUtils.toList(alertData.getContent(), Map.class);
-            } catch (Exception e) {
-                logger.error("json format exception", e);
-                return null;
+
+            List<Map> list = JSONUtils.toList(alertData.getContent(), 
Map.class);
+            if (list.isEmpty()) {
+                return alertData.getTitle() + alertData.getContent();
             }
 
             StringBuilder contents = new StringBuilder(100);
@@ -170,7 +161,7 @@ public class FeiShuSender {
 
             int statusCode = response.getStatusLine().getStatusCode();
             if (statusCode != HttpStatus.SC_OK) {
-                logger.error("send feishu message error, return http status 
code: " + statusCode);
+                logger.error("send feishu message error, return http status 
code: {} ", statusCode);
             }
             String resp;
             try {
@@ -180,7 +171,7 @@ public class FeiShuSender {
             } finally {
                 response.close();
             }
-            logger.info("Ding Talk send title :{} ,content :{}, resp: {}", 
alertData.getTitle(), alertData.getContent(), resp);
+            logger.info("Fei Shu send title :{} ,content :{}, resp: {}", 
alertData.getTitle(), alertData.getContent(), resp);
             return resp;
         } finally {
             httpClient.close();
diff --git 
a/dolphinscheduler-alert-plugin/dolphinscheduler-alert-feishu/src/test/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSenderTest.java
 
b/dolphinscheduler-alert-plugin/dolphinscheduler-alert-feishu/src/test/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSenderTest.java
index 26fac06..05110d4 100644
--- 
a/dolphinscheduler-alert-plugin/dolphinscheduler-alert-feishu/src/test/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSenderTest.java
+++ 
b/dolphinscheduler-alert-plugin/dolphinscheduler-alert-feishu/src/test/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSenderTest.java
@@ -72,4 +72,28 @@ public class FeiShuSenderTest {
         alertData.setContent(alertMsg);
         Assert.assertNotNull(FeiShuSender.formatContent(alertData));
     }
+
+    @Test
+    public void testSendWithFormatException() {
+        AlertData alertData = new AlertData();
+        alertData.setTitle("feishu test title");
+        alertData.setContent("feishu test content");
+        FeiShuSender feiShuSender = new FeiShuSender(feiShuConfig);
+        String alertResult = feiShuSender.formatContent(alertData);
+        Assert.assertEquals(alertResult, alertData.getTitle() + 
alertData.getContent());
+    }
+
+    @Test
+    public void testCheckSendFeiShuSendMsgResult() {
+
+        FeiShuSender feiShuSender = new FeiShuSender(feiShuConfig);
+        AlertResult alertResult = 
feiShuSender.checkSendFeiShuSendMsgResult("");
+        Assert.assertFalse(Boolean.valueOf(alertResult.getStatus()));
+        AlertResult alertResult2 = 
feiShuSender.checkSendFeiShuSendMsgResult("123");
+        Assert.assertEquals("send fei shu msg fail",alertResult2.getMessage());
+
+        String response = 
"{\"StatusCode\":\"0\",\"extra\":\"extra\",\"StatusMessage\":\"StatusMessage\"}";
+        AlertResult alertResult3 = 
feiShuSender.checkSendFeiShuSendMsgResult(response);
+        Assert.assertTrue(Boolean.valueOf(alertResult3.getStatus()));
+    }
 }

Reply via email to