You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by zi...@apache.org on 2024/09/09 13:35:15 UTC
(dolphinscheduler) branch dev updated: [Fix-16569][alert] Feishu send alert message failed (#16588)
This is an automated email from the ASF dual-hosted git repository.
zihaoxiang pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new e4db2d6b87 [Fix-16569][alert] Feishu send alert message failed (#16588)
e4db2d6b87 is described below
commit e4db2d6b8715d5b22a27e715d1c01dfdad3a5ea7
Author: saowu <78...@qq.com>
AuthorDate: Mon Sep 9 21:35:09 2024 +0800
[Fix-16569][alert] Feishu send alert message failed (#16588)
---
.../plugin/alert/feishu/FeiShuAlertChannel.java | 2 +-
.../plugin/alert/feishu/FeiShuSender.java | 117 +++++----------------
.../plugin/alert/feishu/FeiShuSenderTest.java | 5 +-
3 files changed, 29 insertions(+), 95 deletions(-)
diff --git a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuAlertChannel.java b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuAlertChannel.java
index 29c78a9d1b..20c7828412 100644
--- a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuAlertChannel.java
+++ b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuAlertChannel.java
@@ -31,7 +31,7 @@ public final class FeiShuAlertChannel implements AlertChannel {
AlertData alertData = alertInfo.getAlertData();
Map<String, String> paramsMap = alertInfo.getAlertParams();
if (null == paramsMap) {
- return new AlertResult(false, "fei shu params is null");
+ return new AlertResult(false, "feishu params is null");
}
return new FeiShuSender(paramsMap).sendFeiShuMsg(alertData);
}
diff --git a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSender.java b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSender.java
index 05a34ccecc..07ba19ef39 100644
--- a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSender.java
+++ b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSender.java
@@ -37,6 +37,10 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -83,25 +87,24 @@ public final class FeiShuSender {
alertResult.setSuccess(false);
if (org.apache.commons.lang3.StringUtils.isBlank(result)) {
- alertResult.setMessage("send fei shu msg error");
- log.info("send fei shu msg error,fei shu server resp is null");
+ alertResult.setMessage("send feishu msg error: feishu server resp is blank.");
+ log.info("send feishu msg error: feishu server resp is blank.");
return alertResult;
}
FeiShuSendMsgResponse sendMsgResponse = JSONUtils.parseObject(result, FeiShuSendMsgResponse.class);
if (null == sendMsgResponse) {
- alertResult.setMessage("send fei shu msg fail");
- log.info("send fei shu msg error,resp error");
+ alertResult.setMessage("send feishu msg error: feishu server resp parse error is null.");
+ log.info("send feishu msg error: feishu server resp parse error is null.");
return alertResult;
}
- if (sendMsgResponse.statusCode == 0) {
+ if (sendMsgResponse.code == 0) {
alertResult.setSuccess(true);
- alertResult.setMessage("send fei shu msg success");
+ alertResult.setMessage("send feishu msg success.");
return alertResult;
}
- alertResult.setMessage(String.format("alert send fei shu msg error : %s", sendMsgResponse.getStatusMessage()));
- log.info("alert send fei shu msg error : {} ,Extra : {} ", sendMsgResponse.getStatusMessage(),
- sendMsgResponse.getExtra());
+ alertResult.setMessage(String.format("alert send feishu msg error: %s", sendMsgResponse.getMsg()));
+ log.info("alert send feishu msg error: {}", sendMsgResponse);
return alertResult;
}
@@ -134,10 +137,10 @@ public final class FeiShuSender {
String resp = sendMsg(alertData);
return checkSendFeiShuSendMsgResult(resp);
} catch (Exception e) {
- log.error("send fei shu alert failed:", e);
+ log.error("send feishu alert failed:", e);
alertResult = new AlertResult();
alertResult.setSuccess(false);
- alertResult.setMessage("send fei shu alert fail.");
+ alertResult.setMessage("send feishu alert fail.");
}
return alertResult;
}
@@ -167,95 +170,25 @@ public final class FeiShuSender {
} finally {
response.close();
}
- log.info("Fei Shu send title :{} ,content :{}, resp: {}", alertData.getTitle(), alertData.getContent(),
+ log.info("feishu send title: {}, content: {}, resp: {}", alertData.getTitle(), alertData.getContent(),
resp);
return resp;
} finally {
httpClient.close();
}
}
-
+ @AllArgsConstructor
+ @Builder
+ @Data
+ @NoArgsConstructor
static final class FeiShuSendMsgResponse {
- @JsonProperty("Extra")
- private String extra;
- @JsonProperty("StatusCode")
- private Integer statusCode;
- @JsonProperty("StatusMessage")
- private String statusMessage;
-
- public FeiShuSendMsgResponse() {
- }
-
- public String getExtra() {
- return this.extra;
- }
-
- @JsonProperty("Extra")
- public void setExtra(String extra) {
- this.extra = extra;
- }
-
- public Integer getStatusCode() {
- return this.statusCode;
- }
-
- @JsonProperty("StatusCode")
- public void setStatusCode(Integer statusCode) {
- this.statusCode = statusCode;
- }
-
- public String getStatusMessage() {
- return this.statusMessage;
- }
+ @JsonProperty("data")
+ private Object data;
+ @JsonProperty("code")
+ private Integer code;
+ @JsonProperty("msg")
+ private String msg;
- @JsonProperty("StatusMessage")
- public void setStatusMessage(String statusMessage) {
- this.statusMessage = statusMessage;
- }
-
- public boolean equals(final Object o) {
- if (o == this) {
- return true;
- }
- if (!(o instanceof FeiShuSendMsgResponse)) {
- return false;
- }
- final FeiShuSendMsgResponse other = (FeiShuSendMsgResponse) o;
- final Object this$extra = this.getExtra();
- final Object other$extra = other.getExtra();
- if (this$extra == null ? other$extra != null : !this$extra.equals(other$extra)) {
- return false;
- }
- final Object this$statusCode = this.getStatusCode();
- final Object other$statusCode = other.getStatusCode();
- if (this$statusCode == null ? other$statusCode != null : !this$statusCode.equals(other$statusCode)) {
- return false;
- }
- final Object this$statusMessage = this.getStatusMessage();
- final Object other$statusMessage = other.getStatusMessage();
- if (this$statusMessage == null ? other$statusMessage != null
- : !this$statusMessage.equals(other$statusMessage)) {
- return false;
- }
- return true;
- }
-
- public int hashCode() {
- final int PRIME = 59;
- int result = 1;
- final Object $extra = this.getExtra();
- result = result * PRIME + ($extra == null ? 43 : $extra.hashCode());
- final Object $statusCode = this.getStatusCode();
- result = result * PRIME + ($statusCode == null ? 43 : $statusCode.hashCode());
- final Object $statusMessage = this.getStatusMessage();
- result = result * PRIME + ($statusMessage == null ? 43 : $statusMessage.hashCode());
- return result;
- }
-
- public String toString() {
- return "FeiShuSender.FeiShuSendMsgResponse(extra=" + this.getExtra() + ", statusCode="
- + this.getStatusCode() + ", statusMessage=" + this.getStatusMessage() + ")";
- }
}
}
diff --git a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/test/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSenderTest.java b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/test/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSenderTest.java
index 829b02dea6..20800cd724 100644
--- a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/test/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSenderTest.java
+++ b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/test/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuSenderTest.java
@@ -89,9 +89,10 @@ public class FeiShuSenderTest {
AlertResult alertResult = feiShuSender.checkSendFeiShuSendMsgResult("");
Assertions.assertFalse(alertResult.isSuccess());
AlertResult alertResult2 = feiShuSender.checkSendFeiShuSendMsgResult("123");
- Assertions.assertEquals("send fei shu msg fail", alertResult2.getMessage());
+ Assertions.assertEquals("send feishu msg error: feishu server resp parse error is null.",
+ alertResult2.getMessage());
- String response = "{\"StatusCode\":\"0\",\"extra\":\"extra\",\"StatusMessage\":\"StatusMessage\"}";
+ String response = "{\"code\":\"0\",\"data\":{},\"msg\":\"success\"}";
AlertResult alertResult3 = feiShuSender.checkSendFeiShuSendMsgResult(response);
Assertions.assertTrue(alertResult3.isSuccess());
}