|
|
@@ -1,7 +1,6 @@
|
|
|
package cn.reghao.bnt.web.devops.machine.service;
|
|
|
|
|
|
-import cn.reghao.bnt.web.devops.app.db.repository.config.AppDeployConfigRepository;
|
|
|
-import cn.reghao.bnt.web.devops.app.model.po.config.AppDeployConfig;
|
|
|
+import cn.reghao.bnt.web.devops.app.service.config.AppDeployConfigService;
|
|
|
import cn.reghao.bnt.web.devops.machine.db.repository.MachineHostRepository;
|
|
|
import cn.reghao.bnt.web.devops.machine.db.repository.MachineInfoRepository;
|
|
|
import cn.reghao.bnt.web.devops.machine.model.po.MachineHost;
|
|
|
@@ -11,9 +10,9 @@ import cn.reghao.jutil.jdk.result.Result;
|
|
|
import cn.reghao.jutil.jdk.result.ResultStatus;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.List;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author reghao
|
|
|
@@ -24,17 +23,16 @@ import java.util.stream.Collectors;
|
|
|
public class MachineHostServiceImpl implements MachineHostService {
|
|
|
private final MachineHostRepository machineHostRepository;
|
|
|
private final MachineInfoRepository machineInfoRepository;
|
|
|
- private final AppDeployConfigRepository appDeployConfigRepository;
|
|
|
private final MachineService machineService;
|
|
|
+ private final AppDeployConfigService deployConfigService;
|
|
|
|
|
|
public MachineHostServiceImpl(MachineHostRepository machineHostRepository,
|
|
|
MachineInfoRepository machineInfoRepository,
|
|
|
- AppDeployConfigRepository appDeployConfigRepository,
|
|
|
- MachineService machineService) {
|
|
|
+ MachineService machineService, AppDeployConfigService deployConfigService) {
|
|
|
this.machineHostRepository = machineHostRepository;
|
|
|
this.machineInfoRepository = machineInfoRepository;
|
|
|
- this.appDeployConfigRepository = appDeployConfigRepository;
|
|
|
this.machineService = machineService;
|
|
|
+ this.deployConfigService = deployConfigService;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -55,52 +53,41 @@ public class MachineHostServiceImpl implements MachineHostService {
|
|
|
machineHostRepository.save(machineHost);
|
|
|
}
|
|
|
|
|
|
+ @Transactional
|
|
|
public Result delete(String machineId) {
|
|
|
if (machineService.isAgentOnline(machineId)) {
|
|
|
return Result.result(ResultStatus.FAIL, "机器当前在线, 不能删除");
|
|
|
}
|
|
|
|
|
|
MachineHost machineHost = machineHostRepository.findByMachineId(machineId);
|
|
|
+ // AppDeploying -> AppDeployConfig -> MachineInfo
|
|
|
if (machineHost != null) {
|
|
|
- appDeployConfigRepository.deleteByMachineHost(machineHost);
|
|
|
+ deployConfigService.delete(machineHost);
|
|
|
+ deleteMachine(machineHost);
|
|
|
}
|
|
|
|
|
|
- List<AppDeployConfig> list = appDeployConfigRepository.findByMachineHost(machineHost);
|
|
|
- if (!list.isEmpty()) {
|
|
|
- List<String> apps = list.stream()
|
|
|
- .map(appDeployConfig -> appDeployConfig.getAppConfig().getAppId())
|
|
|
- .collect(Collectors.toList());
|
|
|
-
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- for (int i = 0; i < Math.min(3, list.size()); i++) {
|
|
|
- sb.append(apps.get(i)).append(",");
|
|
|
- }
|
|
|
-
|
|
|
- String msg = sb.toString();
|
|
|
- String errMsg = String.format("还有 %s 等应用部署在当前机器上", msg.substring(0, msg.length()-1));
|
|
|
- return Result.result(ResultStatus.FAIL, errMsg);
|
|
|
- }
|
|
|
-
|
|
|
- if (machineHost != null) {
|
|
|
- machineHostRepository.delete(machineHost);
|
|
|
- }
|
|
|
+ return Result.result(ResultStatus.SUCCESS);
|
|
|
+ }
|
|
|
|
|
|
+ private void deleteMachine(MachineHost machineHost) {
|
|
|
+ machineHostRepository.delete(machineHost);
|
|
|
+ String machineId = machineHost.getMachineId();
|
|
|
MachineInfo machineInfo = machineInfoRepository.findByMachineId(machineId);
|
|
|
if (machineInfo != null) {
|
|
|
machineInfoRepository.delete(machineInfo);
|
|
|
}
|
|
|
-
|
|
|
- return Result.result(ResultStatus.SUCCESS);
|
|
|
}
|
|
|
|
|
|
+ @Transactional
|
|
|
@Override
|
|
|
public Result batchDelete(List<String> machineIds) {
|
|
|
for (String machineId : machineIds) {
|
|
|
- Result result = delete(machineId);
|
|
|
- if (result.getCode() != 0) {
|
|
|
- return result;
|
|
|
+ MachineInfo machineInfo = machineInfoRepository.findByMachineId(machineId);
|
|
|
+ if (machineInfo != null && machineInfo.getStat() != 1) {
|
|
|
+ machineInfoRepository.updateMachineInfoByMachineId(machineId, 4);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
return Result.result(ResultStatus.SUCCESS);
|
|
|
}
|
|
|
}
|