From 162ab42327123abf8980ba25d08d57b7a169d6c9 Mon Sep 17 00:00:00 2001 From: lgcareer <18610854716@163.com> Date: Wed, 23 Oct 2019 18:05:57 +0800 Subject: [PATCH] add enterprise.wechat.enable to decide whether to send enterprise WeChat (#1081) * rename from DatasourceUserMapper to DataSourceUserMapper * add unit test in UserMapper and WorkerGroupMapper * change cn.escheduler to org.apache.dolphinscheduler * add unit test in UdfFuncMapperTest * add unit test in UdfFuncMapperTest * remove DatabaseConfiguration * add ConnectionFactoryTest * cal duration in processInstancesList * change desc to description * change table name in mysql ddl * change table name in mysql ddl * change escheduler to dolphinscheduler * change escheduler to dolphinscheduler * change escheduler to dolphinscheduler * remove log4j-1.2-api and modify AlertMapperTest * remove log4j-1.2-api * Add alertDao to spring management * Add alertDao to spring management * get SqlSessionFactory from MybatisSqlSessionFactoryBean * get processDao by DaoFactory * read druid properties in ConneciontFactory * read druid properties in ConneciontFactory * change get alertDao by spring to DaoFactory * add log4j to resolve #967 * resole verify udf name error and delete udf error * Determine if principal is empty * Determine whether the logon user has the right to delete the project * Fixed an issue that produced attatch file named such as ATT00002.bin * fix too many connection in upgrade or create * fix NEED_FAULT_TOLERANCE and WAITTING_THREAD count fail * Added a judgment on whether the currently login user is an administrator * fix update udf database not change and create time is changed * add enterprise.wechat.enable to decide whether to send enterprise WeChat --- .../alert/runner/AlertSender.java | 28 ++++++++++--------- .../alert/utils/Constants.java | 2 ++ .../alert/utils/EnterpriseWeChatUtils.java | 15 ++++++++++ .../src/main/resources/alert.properties | 1 + 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/runner/AlertSender.java b/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/runner/AlertSender.java index f7d73e0d77..5e0c2545f8 100644 --- a/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/runner/AlertSender.java +++ b/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/runner/AlertSender.java @@ -16,6 +16,8 @@ */ package org.apache.dolphinscheduler.alert.runner; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.dolphinscheduler.alert.manager.EmailManager; import org.apache.dolphinscheduler.alert.manager.EnterpriseWeChatManager; import org.apache.dolphinscheduler.alert.utils.Constants; @@ -25,8 +27,6 @@ import org.apache.dolphinscheduler.common.enums.AlertType; import org.apache.dolphinscheduler.dao.AlertDao; import org.apache.dolphinscheduler.dao.entity.Alert; import org.apache.dolphinscheduler.dao.entity.User; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -63,8 +63,6 @@ public class AlertSender{ for(Alert alert:alertList){ users = alertDao.listUserByAlertgroupId(alert.getAlertGroupId()); - - // receiving group list List receviersList = new ArrayList(); for(User user:users){ @@ -109,18 +107,22 @@ public class AlertSender{ } boolean flag = Boolean.parseBoolean(String.valueOf(retMaps.get(Constants.STATUS))); - if (flag){ + if (flag) { alertDao.updateAlert(AlertStatus.EXECUTION_SUCCESS, "execution success", alert.getId()); logger.info("alert send success"); - try { - String token = EnterpriseWeChatUtils.getToken(); - weChatManager.send(alert,token); - } catch (Exception e) { - logger.error(e.getMessage(),e); + if (EnterpriseWeChatUtils.isEnable()) { + logger.info("Enterprise WeChat is enable!"); + try { + String token = EnterpriseWeChatUtils.getToken(); + weChatManager.send(alert, token); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } } - }else { - alertDao.updateAlert(AlertStatus.EXECUTION_FAILURE,String.valueOf(retMaps.get(Constants.MESSAGE)),alert.getId()); - logger.info("alert send error : {}" , String.valueOf(retMaps.get(Constants.MESSAGE))); + + } else { + alertDao.updateAlert(AlertStatus.EXECUTION_FAILURE, String.valueOf(retMaps.get(Constants.MESSAGE)), alert.getId()); + logger.info("alert send error : {}", String.valueOf(retMaps.get(Constants.MESSAGE))); } } 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 d17c6f63ac..665aac246f 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 @@ -139,6 +139,8 @@ public class Constants { public static final String MARKDOWN_ENTER = "\n"; + public static final String ENTERPRISE_WECHAT_ENABLE = "enterprise.wechat.enable"; + public static final String ENTERPRISE_WECHAT_CORP_ID = "enterprise.wechat.corp.id"; public static final String ENTERPRISE_WECHAT_SECRET = "enterprise.wechat.secret"; diff --git a/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/utils/EnterpriseWeChatUtils.java b/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/utils/EnterpriseWeChatUtils.java index b00fb914e0..105b6fa13b 100644 --- a/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/utils/EnterpriseWeChatUtils.java +++ b/dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/utils/EnterpriseWeChatUtils.java @@ -62,6 +62,21 @@ public class EnterpriseWeChatUtils { public static final String enterpriseWeChatUsers = PropertyUtils.getString(Constants.ENTERPRISE_WECHAT_USERS); + /** + * get Enterprise WeChat is enable + * @return isEnable + */ + public static Boolean isEnable(){ + Boolean isEnable = false; + try { + isEnable = PropertyUtils.getBoolean(Constants.ENTERPRISE_WECHAT_ENABLE); + } catch (Exception e) { + logger.error(e.getMessage(),e); + } + return isEnable; + + } + /** * get Enterprise WeChat token info * @return token string info diff --git a/dolphinscheduler-alert/src/main/resources/alert.properties b/dolphinscheduler-alert/src/main/resources/alert.properties index 096c60b4d8..418cbde10f 100644 --- a/dolphinscheduler-alert/src/main/resources/alert.properties +++ b/dolphinscheduler-alert/src/main/resources/alert.properties @@ -19,6 +19,7 @@ mail.smtp.ssl.trust=xxx.xxx.com xls.file.path=/tmp/xls # Enterprise WeChat configuration +enterprise.wechat.enable=false enterprise.wechat.corp.id=xxxxxxx enterprise.wechat.secret=xxxxxxx enterprise.wechat.agent.id=xxxxxxx