reghao 5 лет назад
Родитель
Сommit
ec89594b67
20 измененных файлов с 58 добавлено и 74 удалено
  1. 10 10
      common/src/main/java/cn/reghao/autodop/common/dagent/machine/Machine.java
  2. 2 2
      common/src/main/java/cn/reghao/autodop/common/dagent/machine/MachineService.java
  3. 1 13
      common/src/main/java/cn/reghao/autodop/common/dagent/machine/api/data/MachineInfo.java
  4. 1 1
      common/src/main/java/cn/reghao/autodop/common/dagent/machine/hardware/cpu/CPU.java
  5. 0 2
      common/src/main/java/cn/reghao/autodop/common/dagent/machine/hardware/cpu/CPUInfo.java
  6. 0 3
      common/src/main/java/cn/reghao/autodop/common/dagent/machine/hardware/disk/DiskInfo.java
  7. 0 1
      common/src/main/java/cn/reghao/autodop/common/dagent/machine/hardware/memory/MemoryInfo.java
  8. 0 1
      common/src/main/java/cn/reghao/autodop/common/dagent/machine/hardware/network/NetworkInfo.java
  9. 4 5
      common/src/main/java/cn/reghao/autodop/common/dagent/machine/system/os/OS.java
  10. 1 2
      common/src/main/java/cn/reghao/autodop/common/dagent/machine/system/os/OSInfo.java
  11. 1 0
      dagent/src/main/java/cn/reghao/autodop/dagent/utils/amqp/RabbitConsumer.java
  12. 4 4
      dagent/src/main/resources/application-test.yml
  13. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/amqp/MachineMessageDispatcher.java
  14. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/controller/crud/MachineCrudController.java
  15. 0 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/data/CPUInfo.java
  16. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/data/MachineInfo.java
  17. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/data/OSInfo.java
  18. 4 4
      dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/repository/MachineInfoRepository.java
  19. 4 4
      dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/service/MachineService.java
  20. 18 13
      dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/service/crud/MachineCrudService.java

+ 10 - 10
common/src/main/java/cn/reghao/autodop/common/dagent/machine/Machine.java

@@ -3,7 +3,7 @@ package cn.reghao.autodop.common.dagent.machine;
 import cn.reghao.autodop.common.amqp.RpcResult;
 import cn.reghao.autodop.common.dagent.machine.api.data.MachineHeartbeat;
 import cn.reghao.autodop.common.dagent.machine.api.data.MachineLog;
-import cn.reghao.autodop.common.dagent.machine.api.data.MachineRegistry;
+import cn.reghao.autodop.common.dagent.machine.api.data.MachineInfo;
 import cn.reghao.autodop.common.dagent.machine.hardware.cpu.CPU;
 import cn.reghao.autodop.common.dagent.machine.hardware.disk.Disk;
 import cn.reghao.autodop.common.dagent.machine.hardware.memory.Memory;
@@ -42,15 +42,15 @@ public class Machine implements MachineService {
     }
 
     @Override
-    public MachineRegistry registry() {
-        MachineRegistry machineRegistry = new MachineRegistry();
-        machineRegistry.setMachineId(machineId);
-        machineRegistry.setCpuInfo(cpu.info());
-        machineRegistry.setMemoryInfo(memory.info());
-        machineRegistry.setDiskInfo(disk.info());
-        machineRegistry.setNetworkInfo(network.info());
-        machineRegistry.setOsInfo(os.info());
-        return machineRegistry;
+    public MachineInfo registry() {
+        MachineInfo machineInfo = new MachineInfo();
+        machineInfo.setMachineId(machineId);
+        machineInfo.setCpuInfo(cpu.info());
+        machineInfo.setMemoryInfo(memory.info());
+        machineInfo.setDiskInfo(disk.info());
+        machineInfo.setNetworkInfo(network.info());
+        machineInfo.setOsInfo(os.info());
+        return machineInfo;
     }
 
     @Override

+ 2 - 2
common/src/main/java/cn/reghao/autodop/common/dagent/machine/MachineService.java

@@ -3,14 +3,14 @@ package cn.reghao.autodop.common.dagent.machine;
 import cn.reghao.autodop.common.amqp.RpcResult;
 import cn.reghao.autodop.common.dagent.machine.api.data.MachineHeartbeat;
 import cn.reghao.autodop.common.dagent.machine.api.data.MachineLog;
-import cn.reghao.autodop.common.dagent.machine.api.data.MachineRegistry;
+import cn.reghao.autodop.common.dagent.machine.api.data.MachineInfo;
 
 /**
  * @author reghao
  * @date 2021-02-22 17:25:23
  */
 public interface MachineService {
-    MachineRegistry registry();
+    MachineInfo registry();
     MachineHeartbeat heartbeat();
     MachineLog log();
     RpcResult shell(String payload);

+ 1 - 13
common/src/main/java/cn/reghao/autodop/common/dagent/machine/api/data/MachineRegistry.java → common/src/main/java/cn/reghao/autodop/common/dagent/machine/api/data/MachineInfo.java

@@ -5,15 +5,9 @@ import cn.reghao.autodop.common.dagent.machine.hardware.disk.DiskInfo;
 import cn.reghao.autodop.common.dagent.machine.hardware.memory.MemoryInfo;
 import cn.reghao.autodop.common.dagent.machine.hardware.network.NetworkInfo;
 import cn.reghao.autodop.common.dagent.machine.system.os.OSInfo;
-//import cn.reghao.autodop.dmaster.common.db.orm.BaseEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-/*import org.hibernate.annotations.LazyCollection;
-import org.hibernate.annotations.LazyCollectionOption;
 
-import javax.persistence.Column;
-import javax.persistence.ElementCollection;
-import javax.persistence.Entity;*/
 import java.util.List;
 
 /**
@@ -22,17 +16,11 @@ import java.util.List;
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
-//@Entity
-public class MachineRegistry {
-    //@Column(nullable = false, unique = true)
+public class MachineInfo {
     private String machineId;
     private CPUInfo cpuInfo;
     private MemoryInfo memoryInfo;
-    //@ElementCollection(targetClass = DiskInfo.class)
-    //@LazyCollection(LazyCollectionOption.FALSE)
     private List<DiskInfo> diskInfo;
-    //@ElementCollection(targetClass = NetworkInfo.class)
-    //@LazyCollection(LazyCollectionOption.FALSE)
     private List<NetworkInfo> networkInfo;
     private OSInfo osInfo;
 }

+ 1 - 1
common/src/main/java/cn/reghao/autodop/common/dagent/machine/hardware/cpu/CPU.java

@@ -32,7 +32,7 @@ public class CPU {
             if (!line.isEmpty()) {
                 String[] kv = line.replace("\t", " ").split(":");
                 if (kv.length == 2) {
-                    map.put(kv[0].toLowerCase().trim(), kv[1].toLowerCase().trim());
+                    map.put(kv[0].toLowerCase().trim(), kv[1].trim());
                 }
             } else {
                 result.add(map);

+ 0 - 2
common/src/main/java/cn/reghao/autodop/common/dagent/machine/hardware/cpu/CPUInfo.java

@@ -7,9 +7,7 @@ import lombok.Data;
  * @date 2020-10-20 09:51:52
  */
 @Data
-//@Embeddable
 public class CPUInfo {
-    private String byteOrder;
     private int cpuCores;
     private int cpus;
     private String vendorId;

+ 0 - 3
common/src/main/java/cn/reghao/autodop/common/dagent/machine/hardware/disk/DiskInfo.java

@@ -2,9 +2,6 @@ package cn.reghao.autodop.common.dagent.machine.hardware.disk;
 
 import lombok.Data;
 
-/*import javax.persistence.Embeddable;
-import javax.persistence.Entity;*/
-
 /**
  * df -h 命令输出
  *

+ 0 - 1
common/src/main/java/cn/reghao/autodop/common/dagent/machine/hardware/memory/MemoryInfo.java

@@ -9,7 +9,6 @@ import lombok.Data;
  * @date 2020-10-20 10:51:50
  */
 @Data
-//@Embeddable
 public class MemoryInfo {
     private String total;
     private String used;

+ 0 - 1
common/src/main/java/cn/reghao/autodop/common/dagent/machine/hardware/network/NetworkInfo.java

@@ -7,7 +7,6 @@ import lombok.Data;
  * @date 2020-10-20 10:53:12
  */
 @Data
-//@Embeddable
 public class NetworkInfo {
     private String iface;
     // 格式 e8-2a-ea-7c-4a-a2

+ 4 - 5
common/src/main/java/cn/reghao/autodop/common/dagent/machine/system/os/OS.java

@@ -13,6 +13,10 @@ public class OS {
 
     public OSInfo info() {
         OSInfo osInfo = new OSInfo();
+        osInfo.setName(System.getProperty("os.name"));
+        osInfo.setArch(System.getProperty("os.arch"));
+        osInfo.setVersion(System.getProperty("os.version"));
+        osInfo.setByteOrder(System.getProperty("sun.cpu.endian"));
         osInfo.setBootTime(bootTime());
         return osInfo;
     }
@@ -51,9 +55,4 @@ public class OS {
         osStat.setLastPid(Integer.parseInt(strs[4]));
         return osStat;
     }
-
-    public static void main(String[] args) throws Exception {
-        OS os = new OS();
-        os.info();
-    }
 }

+ 1 - 2
common/src/main/java/cn/reghao/autodop/common/dagent/machine/system/os/OSInfo.java

@@ -7,11 +7,10 @@ import lombok.Data;
  * @date 2020-10-20 23:16:42
  */
 @Data
-//@Embeddable
 public class OSInfo {
-    private String type;
     private String name;
     private String arch;
     private String version;
+    private String byteOrder;
     private String bootTime;
 }

+ 1 - 0
dagent/src/main/java/cn/reghao/autodop/dagent/utils/amqp/RabbitConsumer.java

@@ -52,6 +52,7 @@ public class RabbitConsumer implements ChannelAwareMessageListener {
 
             if (!machineId.equals(Machine.machineId()) && sendTime < startTime) {
                 log.info("忽略不是发送到本机或 dagent 启动前发送到 MQ 中的所有消息...");
+                return;
             }
 
             log.info("新消息...");

+ 4 - 4
dagent/src/main/resources/application-test.yml

@@ -1,7 +1,7 @@
 spring:
   rabbitmq:
-    host: mq.srv.iquizoo.com
+    host: 192.168.0.111
     port: 5672
-    username: iquizoo-mq1
-    password: z2pT1PXR
-    virtual-host: /
+    virtual-host: /
+    username: dev
+    password: Dev@12345678

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/amqp/MachineMessageDispatcher.java

@@ -4,7 +4,7 @@ import cn.reghao.autodop.common.dagent.machine.api.MachineOps;
 import cn.reghao.autodop.common.utils.serializer.JsonConverter;
 import cn.reghao.autodop.dmaster.cluster.entity.data.MachineHeartbeat;
 import cn.reghao.autodop.dmaster.cluster.entity.data.MachineLog;
-import cn.reghao.autodop.dmaster.cluster.entity.data.MachineRegistry;
+import cn.reghao.autodop.dmaster.cluster.entity.data.MachineInfo;
 import cn.reghao.autodop.dmaster.cluster.service.crud.MachineCrudService;
 import cn.reghao.autodop.dmaster.cluster.service.crud.MachineLogCrudService;
 import lombok.extern.slf4j.Slf4j;
@@ -32,8 +32,8 @@ public class MachineMessageDispatcher implements MessageDispatcher {
             switch (MachineOps.valueOf(ops)) {
                 case machineRegistryOps:
                     log.info("机器注册消息...");
-                    MachineRegistry machineRegistry = (MachineRegistry) JsonConverter.jsonToObject(payload, MachineRegistry.class);
-                    machineCrudService.addOrUpdate(machineRegistry);
+                    MachineInfo machineInfo = (MachineInfo) JsonConverter.jsonToObject(payload, MachineInfo.class);
+                    machineCrudService.addOrUpdate(machineInfo);
                     break;
                 case machineHeartbeatOps:
                     log.info("机器心跳消息...");

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/controller/crud/MachineCrudController.java

@@ -1,7 +1,7 @@
 package cn.reghao.autodop.dmaster.cluster.controller.crud;
 
 import cn.reghao.autodop.common.result.WebResult;
-import cn.reghao.autodop.dmaster.cluster.entity.data.MachineRegistry;
+import cn.reghao.autodop.dmaster.cluster.entity.data.MachineInfo;
 import cn.reghao.autodop.dmaster.common.db.PageList;
 import cn.reghao.autodop.dmaster.cluster.service.crud.MachineCrudService;
 import io.swagger.annotations.Api;
@@ -28,11 +28,11 @@ public class MachineCrudController {
 
     @GetMapping("/ids")
     public String machineIdByPage(@RequestParam("page") int page, @RequestParam("size") int size) {
-        PageList<MachineRegistry> pageList = machineCrudService.getByPage(page, size);
+        PageList<MachineInfo> pageList = machineCrudService.getByPage(page, size);
         PageList<String> machineIds = new PageList<>();
         machineIds.setTotalSize(pageList.getTotalSize());
         machineIds.setTotalPages(pageList.getTotalPages());
-        machineIds.setList(pageList.getList().stream().map(MachineRegistry::getMachineId).collect(Collectors.toList()));
+        machineIds.setList(pageList.getList().stream().map(MachineInfo::getMachineId).collect(Collectors.toList()));
         return WebResult.success(machineIds);
     }
 }

+ 0 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/data/CPUInfo.java

@@ -11,7 +11,6 @@ import javax.persistence.Embeddable;
 @Data
 @Embeddable
 public class CPUInfo {
-    private String byteOrder;
     private int cpuCores;
     private int cpus;
     private String vendorId;

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/data/MachineRegistry.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/data/MachineInfo.java

@@ -20,7 +20,7 @@ import javax.persistence.Entity;
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Entity
-public class MachineRegistry extends BaseEntity {
+public class MachineInfo extends BaseEntity {
     @Column(nullable = false, unique = true)
     private String machineId;
     private CPUInfo cpuInfo;

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/data/OSInfo.java

@@ -11,9 +11,9 @@ import javax.persistence.Embeddable;
 @Data
 @Embeddable
 public class OSInfo {
-    private String type;
     private String name;
     private String arch;
     private String version;
+    private String byteOrder;
     private String bootTime;
 }

+ 4 - 4
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/repository/MachineRegistryRepository.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/repository/MachineInfoRepository.java

@@ -1,6 +1,6 @@
 package cn.reghao.autodop.dmaster.cluster.repository;
 
-import cn.reghao.autodop.dmaster.cluster.entity.data.MachineRegistry;
+import cn.reghao.autodop.dmaster.cluster.entity.data.MachineInfo;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -12,9 +12,9 @@ import javax.transaction.Transactional;
  * @author reghao
  * @date 2020-01-21 14:53:03
  */
-public interface MachineRegistryRepository extends JpaRepository<MachineRegistry, Long> {
-    Page<MachineRegistry> findByIsDeleteFalse(Pageable pageable);
-    MachineRegistry findByMachineId(String machineId);
+public interface MachineInfoRepository extends JpaRepository<MachineInfo, Long> {
+    Page<MachineInfo> findByIsDeleteFalse(Pageable pageable);
+    MachineInfo findByMachineId(String machineId);
 
     @Modifying
     @Transactional

+ 4 - 4
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/service/MachineService.java

@@ -1,7 +1,7 @@
 package cn.reghao.autodop.dmaster.cluster.service;
 
 import cn.reghao.autodop.dmaster.cluster.repository.MachineLogRepository;
-import cn.reghao.autodop.dmaster.cluster.repository.MachineRegistryRepository;
+import cn.reghao.autodop.dmaster.cluster.repository.MachineInfoRepository;
 import cn.reghao.autodop.dmaster.cluster.vo.MachineVO;
 import org.springframework.stereotype.Service;
 
@@ -14,12 +14,12 @@ import java.util.List;
  */
 @Service
 public class MachineService {
-    private MachineRegistryRepository machineRegistryRepository;
+    private MachineInfoRepository machineInfoRepository;
     private MachineLogRepository machineLogRepository;
 
-    public MachineService(MachineRegistryRepository machineRegistryRepository,
+    public MachineService(MachineInfoRepository machineInfoRepository,
                           MachineLogRepository machineLogRepository) {
-        this.machineRegistryRepository = machineRegistryRepository;
+        this.machineInfoRepository = machineInfoRepository;
         this.machineLogRepository = machineLogRepository;
     }
 

+ 18 - 13
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/service/crud/MachineCrudService.java

@@ -1,7 +1,7 @@
 package cn.reghao.autodop.dmaster.cluster.service.crud;
 
-import cn.reghao.autodop.dmaster.cluster.entity.data.MachineRegistry;
-import cn.reghao.autodop.dmaster.cluster.repository.MachineRegistryRepository;
+import cn.reghao.autodop.dmaster.cluster.entity.data.MachineInfo;
+import cn.reghao.autodop.dmaster.cluster.repository.MachineInfoRepository;
 import cn.reghao.autodop.dmaster.common.db.CrudOps;
 import cn.reghao.autodop.dmaster.common.db.PageList;
 import org.springframework.data.domain.Page;
@@ -9,36 +9,41 @@ import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+
 /**
  * @author reghao
  * @date 2019-11-15 08:48:04
  */
 @Service
-public class MachineCrudService implements CrudOps<MachineRegistry> {
-    private MachineRegistryRepository machineRepository;
+public class MachineCrudService implements CrudOps<MachineInfo> {
+    private MachineInfoRepository machineRepository;
 
-    public MachineCrudService(MachineRegistryRepository machineRepository) {
+    public MachineCrudService(MachineInfoRepository machineRepository) {
         this.machineRepository = machineRepository;
     }
 
     @Override
-    public void addOrUpdate(MachineRegistry machineRegistry) throws Exception {
+    public void addOrUpdate(MachineInfo machineInfo) throws Exception {
         // 重复 machineId 则更新
-        MachineRegistry machineEntity = machineRepository.findByMachineId(machineRegistry.getMachineId());
-        if (machineEntity == null) {
-            //machineRegistry.setIsDelete(false);
-            machineRepository.save(machineRegistry);
+        MachineInfo machineEntity = machineRepository.findByMachineId(machineInfo.getMachineId());
+        if (machineEntity != null) {
+            machineInfo.setId(machineEntity.getId());
+            machineInfo.setCreateTime(machineEntity.getCreateTime());
+            machineInfo.setUpdateTime(LocalDateTime.now());
         }
+        machineInfo.setIsDelete(false);
+        machineRepository.save(machineInfo);
     }
 
     @Override
-    public PageList<MachineRegistry> getByPage(int page, int size) {
+    public PageList<MachineInfo> getByPage(int page, int size) {
         // 默认按更新时间倒序
         PageRequest pageRequest =
                 PageRequest.of(page-1, size, Sort.by(Sort.Direction.DESC, "updateTime"));
 
-        Page<MachineRegistry> page1 = machineRepository.findByIsDeleteFalse(pageRequest);
-        PageList<MachineRegistry> pageList = new PageList<>();
+        Page<MachineInfo> page1 = machineRepository.findByIsDeleteFalse(pageRequest);
+        PageList<MachineInfo> pageList = new PageList<>();
         pageList.setTotalSize(page1.getTotalElements());
         pageList.setTotalPages(page1.getTotalPages());
         pageList.setList(page1.getContent());