Unverified Commit 8a41580e authored by Forus's avatar Forus Committed by GitHub

[Bug-1175] 集群实例删除导致已存在的任务无法停止 (#1176)

parent 803c8d83
...@@ -23,10 +23,14 @@ import com.dlink.assertion.Asserts; ...@@ -23,10 +23,14 @@ import com.dlink.assertion.Asserts;
import com.dlink.common.result.ProTableResult; import com.dlink.common.result.ProTableResult;
import com.dlink.common.result.Result; import com.dlink.common.result.Result;
import com.dlink.model.Cluster; import com.dlink.model.Cluster;
import com.dlink.model.JobInstance;
import com.dlink.service.ClusterService; import com.dlink.service.ClusterService;
import com.dlink.service.JobInstanceService;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.DeleteMapping;
...@@ -51,9 +55,11 @@ import lombok.extern.slf4j.Slf4j; ...@@ -51,9 +55,11 @@ import lombok.extern.slf4j.Slf4j;
@RestController @RestController
@RequestMapping("/api/cluster") @RequestMapping("/api/cluster")
public class ClusterController { public class ClusterController {
@Autowired @Autowired
private ClusterService clusterService; private ClusterService clusterService;
@Autowired
private JobInstanceService jobInstanceService;
/** /**
* 新增或者更新 * 新增或者更新
*/ */
...@@ -88,17 +94,24 @@ public class ClusterController { ...@@ -88,17 +94,24 @@ public class ClusterController {
@DeleteMapping @DeleteMapping
public Result deleteMul(@RequestBody JsonNode para) { public Result deleteMul(@RequestBody JsonNode para) {
if (para.size() > 0) { if (para.size() > 0) {
List<Integer> error = new ArrayList<>(); List<JobInstance> instances = jobInstanceService.listJobInstanceActive();
Set<Integer> ids = instances.stream().map(JobInstance::getClusterId).collect(Collectors.toSet());
List<String> error = new ArrayList<>();
for (final JsonNode item : para) { for (final JsonNode item : para) {
Integer id = item.asInt(); Integer id = item.asInt();
if (!clusterService.removeById(id)) { if (ids.contains(id) || !clusterService.removeById(id)) {
error.add(id); error.add(clusterService.getById(id).getName());
} }
} }
if (error.size() == 0) { if (error.size() == 0) {
return Result.succeed("删除成功"); return Result.succeed("删除成功");
} else { } else {
return Result.succeed("删除部分成功,但" + error.toString() + "删除失败,共" + error.size() + "次失败。"); if (para.size() > error.size()) {
return Result.succeed(
"删除部分成功,但" + error.toString() + "删除失败,共" + error.size() + "次失败。\n请检查集群实例是否已被集群使用!");
} else {
return Result.succeed(error.toString() + "删除失败,共" + error.size() + "次失败。\n请检查集群实例是否已被集群使用!");
}
} }
} else { } else {
return Result.failed("请选择要删除的记录"); return Result.failed("请选择要删除的记录");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment