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;
import com.dlink.common.result.ProTableResult;
import com.dlink.common.result.Result;
import com.dlink.model.Cluster;
import com.dlink.model.JobInstance;
import com.dlink.service.ClusterService;
import com.dlink.service.JobInstanceService;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
......@@ -51,9 +55,11 @@ import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping("/api/cluster")
public class ClusterController {
@Autowired
private ClusterService clusterService;
@Autowired
private JobInstanceService jobInstanceService;
/**
* 新增或者更新
*/
......@@ -88,17 +94,24 @@ public class ClusterController {
@DeleteMapping
public Result deleteMul(@RequestBody JsonNode para) {
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) {
Integer id = item.asInt();
if (!clusterService.removeById(id)) {
error.add(id);
if (ids.contains(id) || !clusterService.removeById(id)) {
error.add(clusterService.getById(id).getName());
}
}
if (error.size() == 0) {
return Result.succeed("删除成功");
} 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 {
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