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()));
+ }
}