Quellcode durchsuchen

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
lgcareer vor 5 Jahren
Ursprung
Commit
162ab42327

+ 15 - 13
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<String> receviersList = new ArrayList<String>();
             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)));
             }
         }
 

+ 2 - 0
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";

+ 15 - 0
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

+ 1 - 0
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