|
@@ -8,6 +8,7 @@ import cn.reghao.devops.mgr.ops.machine.model.po.MachineInfo;
|
|
|
import cn.reghao.devops.mgr.ops.machine.model.vo.MachineDetail;
|
|
import cn.reghao.devops.mgr.ops.machine.model.vo.MachineDetail;
|
|
|
import cn.reghao.devops.mgr.ops.machine.model.vo.MachineStat;
|
|
import cn.reghao.devops.mgr.ops.machine.model.vo.MachineStat;
|
|
|
import cn.reghao.devops.mgr.ops.machine.service.MachineQuery;
|
|
import cn.reghao.devops.mgr.ops.machine.service.MachineQuery;
|
|
|
|
|
+import cn.reghao.devops.mgr.ws.WebSocketSessionManager;
|
|
|
import cn.reghao.jutil.jdk.converter.DateTimeConverter;
|
|
import cn.reghao.jutil.jdk.converter.DateTimeConverter;
|
|
|
import org.springframework.data.domain.Page;
|
|
import org.springframework.data.domain.Page;
|
|
|
import org.springframework.data.domain.PageRequest;
|
|
import org.springframework.data.domain.PageRequest;
|
|
@@ -27,12 +28,14 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
@Service
|
|
|
public class MachineQueryImpl implements MachineQuery {
|
|
public class MachineQueryImpl implements MachineQuery {
|
|
|
private final MachineInfoRepository machineInfoRepository;
|
|
private final MachineInfoRepository machineInfoRepository;
|
|
|
- // TODO MachineQuery 和 AppDeployQuery 存在循环依赖
|
|
|
|
|
private final AppDeployConfigRepository deployConfigRepository;
|
|
private final AppDeployConfigRepository deployConfigRepository;
|
|
|
|
|
+ private final WebSocketSessionManager wsSessionManager;
|
|
|
|
|
|
|
|
- public MachineQueryImpl(MachineInfoRepository machineInfoRepository, AppDeployConfigRepository deployConfigRepository) {
|
|
|
|
|
|
|
+ public MachineQueryImpl(MachineInfoRepository machineInfoRepository, AppDeployConfigRepository deployConfigRepository,
|
|
|
|
|
+ WebSocketSessionManager wsSessionManager) {
|
|
|
this.machineInfoRepository = machineInfoRepository;
|
|
this.machineInfoRepository = machineInfoRepository;
|
|
|
this.deployConfigRepository = deployConfigRepository;
|
|
this.deployConfigRepository = deployConfigRepository;
|
|
|
|
|
+ this.wsSessionManager = wsSessionManager;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -50,7 +53,8 @@ public class MachineQueryImpl implements MachineQuery {
|
|
|
int used = deployConfigRepository.countByMachineInfo(machineInfo);
|
|
int used = deployConfigRepository.countByMachineInfo(machineInfo);
|
|
|
long bootTime = machineInfo.getBootTime();
|
|
long bootTime = machineInfo.getBootTime();
|
|
|
String bootTimeStr = DateTimeConverter.format(bootTime*1000);
|
|
String bootTimeStr = DateTimeConverter.format(bootTime*1000);
|
|
|
- String status = getMachineStat(machineInfo);
|
|
|
|
|
|
|
+ String machineId = machineInfo.getMachineId();
|
|
|
|
|
+ String status = getMachineStat(machineId);
|
|
|
return new MachineDetail(machineInfo, bootTimeStr, status, used);
|
|
return new MachineDetail(machineInfo, bootTimeStr, status, used);
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
@@ -70,7 +74,8 @@ public class MachineQueryImpl implements MachineQuery {
|
|
|
int used = deployConfigRepository.countByMachineInfo(machineInfo);
|
|
int used = deployConfigRepository.countByMachineInfo(machineInfo);
|
|
|
long bootTime = machineInfo.getBootTime();
|
|
long bootTime = machineInfo.getBootTime();
|
|
|
String bootTimeStr = DateTimeConverter.format(bootTime*1000);
|
|
String bootTimeStr = DateTimeConverter.format(bootTime*1000);
|
|
|
- String status = getMachineStat(machineInfo);
|
|
|
|
|
|
|
+ String machineId = machineInfo.getMachineId();
|
|
|
|
|
+ String status = getMachineStat(machineId);
|
|
|
return new MachineDetail(machineInfo, bootTimeStr, status, used);
|
|
return new MachineDetail(machineInfo, bootTimeStr, status, used);
|
|
|
}).getContent();
|
|
}).getContent();
|
|
|
}
|
|
}
|
|
@@ -113,15 +118,11 @@ public class MachineQueryImpl implements MachineQuery {
|
|
|
return stats;
|
|
return stats;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private String getMachineStat(MachineInfo machineInfo) {
|
|
|
|
|
- String status = NodeStatus.Online.name();
|
|
|
|
|
- int stat = machineInfo.getStat();
|
|
|
|
|
- if (stat == NodeStatus.Offline.getCode()) {
|
|
|
|
|
- status = NodeStatus.Offline.name();
|
|
|
|
|
- } else if (stat == NodeStatus.Deprecated.getCode()) {
|
|
|
|
|
- status = NodeStatus.Deprecated.name();
|
|
|
|
|
|
|
+ private String getMachineStat(String machineId) {
|
|
|
|
|
+ String status = NodeStatus.Offline.name();
|
|
|
|
|
+ if (wsSessionManager.getAgentSession(machineId) != null) {
|
|
|
|
|
+ status = NodeStatus.Online.name();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
return status;
|
|
return status;
|
|
|
}
|
|
}
|
|
|
|
|
|