소스 검색

update agent module

reghao 1 년 전
부모
커밋
366f0668be

+ 12 - 7
agent/src/main/java/cn/reghao/devops/agent/task/ImageCleanTask.java

@@ -1,8 +1,8 @@
 package cn.reghao.devops.agent.task;
 
 import cn.reghao.devops.common.docker.Docker;
-import cn.reghao.devops.common.docker.po.ContainerInfo;
-import cn.reghao.devops.common.docker.po.ImageInfo;
+import com.github.dockerjava.api.command.InspectContainerResponse;
+import com.github.dockerjava.api.model.Image;
 import lombok.extern.slf4j.Slf4j;
 
 import java.util.List;
@@ -23,11 +23,16 @@ public class ImageCleanTask implements Runnable {
 
     @Override
     public void run() {
-        Map<String, ImageInfo> map = docker.images().stream().collect(Collectors.toMap(ImageInfo::getImageId, info -> info));
-        List<ContainerInfo> containerInfos = docker.psAll();
-        for (ContainerInfo containerInfo : containerInfos) {
-            String imageId = containerInfo.getImageId();
-            ImageInfo imageInfo = map.remove(imageId);
+        Map<String, Image> map = docker.images().stream()
+                .collect(Collectors.toMap(Image::getId, image -> image));
+
+        List<InspectContainerResponse> list = docker.psAll();
+        for (InspectContainerResponse response : list) {
+            String imageId = response.getImageId();
+            Boolean running = response.getState().getRunning();
+            if (running != null && running) {
+                Image image = map.remove(imageId);
+            }
         }
 
         //map.keySet().forEach(docker::imageRm);

+ 1 - 1
agent/src/main/java/cn/reghao/devops/agent/ws/WsClient.java

@@ -36,7 +36,7 @@ public class WsClient implements MessageSender {
         EventCenter eventCenter = new EventCenter(this, appDeploy, appStat);
         // 每 60s 发送一次心跳
         int heartbeatInterval = 60;
-        MachineEvent machineEvent = new MachineEvent(this, new Machine(), scheduler, heartbeatInterval);
+        MachineEvent machineEvent = new MachineEvent(this, new Machine(), appStat, scheduler, heartbeatInterval);
         this.webSocketListener = new WebSocketListenerImpl(this, eventCenter, machineEvent);
         this.retry = true;
         this.retryCount = 0;