|
@@ -27,13 +27,16 @@ import org.apache.dolphinscheduler.common.utils.CollectionUtils;
|
|
|
import org.apache.dolphinscheduler.dao.entity.AlertPluginInstance;
|
|
|
import org.apache.dolphinscheduler.dao.entity.PluginDefine;
|
|
|
import org.apache.dolphinscheduler.dao.entity.User;
|
|
|
+import org.apache.dolphinscheduler.dao.mapper.AlertGroupMapper;
|
|
|
import org.apache.dolphinscheduler.dao.mapper.AlertPluginInstanceMapper;
|
|
|
import org.apache.dolphinscheduler.dao.mapper.PluginDefineMapper;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Optional;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -56,6 +59,9 @@ public class AlertPluginInstanceServiceImpl extends BaseService implements Alert
|
|
|
@Autowired
|
|
|
private PluginDefineMapper pluginDefineMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private AlertGroupMapper alertGroupMapper;
|
|
|
+
|
|
|
/**
|
|
|
* creat alert plugin instance
|
|
|
*
|
|
@@ -121,6 +127,12 @@ public class AlertPluginInstanceServiceImpl extends BaseService implements Alert
|
|
|
@Override
|
|
|
public Map<String, Object> delete(User loginUser, int id) {
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
+ //check if there is an associated alert group
|
|
|
+ boolean hasAssociatedAlertGroup = checkHasAssociatedAlertGroup(String.valueOf(id));
|
|
|
+ if (hasAssociatedAlertGroup) {
|
|
|
+ putMsg(result, Status.DELETE_ALERT_PLUGIN_INSTANCE_ERROR_HAS_ALERT_GROUP_ASSOCIATED);
|
|
|
+ }
|
|
|
+
|
|
|
int i = alertPluginInstanceMapper.deleteById(id);
|
|
|
if (i > 0) {
|
|
|
putMsg(result, Status.SUCCESS);
|
|
@@ -205,4 +217,14 @@ public class AlertPluginInstanceServiceImpl extends BaseService implements Alert
|
|
|
return alertPluginInstanceVOS;
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ private boolean checkHasAssociatedAlertGroup(String id) {
|
|
|
+ List<String> idsList = alertGroupMapper.queryInstanceIdsList();
|
|
|
+ if (CollectionUtils.isEmpty(idsList)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ Optional<String> first = idsList.stream().filter(k -> Arrays.asList(k.split(",")).contains(id)).findFirst();
|
|
|
+ return first.isPresent();
|
|
|
+ }
|
|
|
+
|
|
|
}
|