Explorar el Código

将 MachineService 中的 agentShutdown 方法修改为 setAgentStatus, 在 agent 的 ws 连接建立或断开时调用, 用来设置 agent 节点的状态

reghao hace 1 año
padre
commit
8f2466ab79

+ 2 - 1
mgr/src/main/java/cn/reghao/devops/mgr/mgr/machine/service/MachineService.java

@@ -1,5 +1,6 @@
 package cn.reghao.devops.mgr.mgr.machine.service;
 
+import cn.reghao.devops.common.msg.constant.NodeStatus;
 import cn.reghao.devops.common.msg.event.EvtAgentHeartbeat;
 import cn.reghao.devops.common.msg.event.EvtAgentStart;
 import cn.reghao.devops.mgr.mgr.machine.model.po.SshAuth;
@@ -18,6 +19,6 @@ public interface MachineService {
     void setMachineSshAuth(String machineId, SshAuth sshAuth);
     Result setMachinesDeprecate(List<String> machineIds);
     Result deleteMachine(String machineId);
-    void agentShutdown(String machineId);
+    void setAgentStatus(String machineId, NodeStatus nodeStatus);
     void shutdown();
 }

+ 2 - 2
mgr/src/main/java/cn/reghao/devops/mgr/mgr/machine/service/impl/MachineServiceImpl.java

@@ -134,10 +134,10 @@ public class MachineServiceImpl implements MachineService {
     }
 
     @Override
-    public void agentShutdown(String machineId) {
+    public void setAgentStatus(String machineId, NodeStatus nodeStatus) {
         MachineInfo machineInfo = machineQuery.getMachineInfo(machineId);
         if (machineInfo != null) {
-            machineInfo.setStat(NodeStatus.Offline.getCode());
+            machineInfo.setStat(nodeStatus.getCode());
             machineInfoRepository.save(machineInfo);
         }
     }

+ 3 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ws/handler/AgentWebSocketHandler.java

@@ -1,5 +1,6 @@
 package cn.reghao.devops.mgr.ws.handler;
 
+import cn.reghao.devops.common.msg.constant.NodeStatus;
 import cn.reghao.devops.mgr.mgr.machine.service.MachineService;
 import cn.reghao.devops.mgr.ws.WsSender;
 import cn.reghao.jutil.jdk.serializer.JdkSerializer;
@@ -34,6 +35,7 @@ public class AgentWebSocketHandler implements WebSocketHandler {
         String machineId = getId(webSocketSession);
         log.info("节点 {} 建立连接", machineId);
         wsSender.addSession(machineId, webSocketSession);
+        machineService.setAgentStatus(machineId, NodeStatus.Online);
     }
 
     private String getId(WebSocketSession webSocketSession) {
@@ -78,7 +80,7 @@ public class AgentWebSocketHandler implements WebSocketHandler {
     @Override
     public void afterConnectionClosed(WebSocketSession webSocketSession, CloseStatus closeStatus) {
         String machineId = getId(webSocketSession);
-        machineService.agentShutdown(machineId);
+        machineService.setAgentStatus(machineId, NodeStatus.Offline);
         wsSender.removeSession(machineId);
         log.info("节点 {} 断开连接", machineId);
     }