Преглед на файлове

删除了 MachineInfo 的 env 字段

reghao преди 4 години
родител
ревизия
6c30292a29

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

@@ -40,8 +40,6 @@ public class Machine {
     public MachineInfo registry() {
         MachineInfo machineInfo = new MachineInfo();
         machineInfo.setMachineId(machineId);
-        // TODO 根据机器所处的环境指定
-        machineInfo.setEnv("test");
         machineInfo.setOsInfo(os.info());
         machineInfo.setNetworkInfos(network.info());
         machineInfo.setCpuInfo(cpu.info());

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

@@ -16,7 +16,6 @@ import java.util.List;
 @EqualsAndHashCode(callSuper = false)
 public class MachineInfo {
     private String machineId;
-    private String env;
     private OsInfo osInfo;
     private List<NetworkInfo> networkInfos;
     private CpuInfo cpuInfo;

+ 19 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/Host.java

@@ -0,0 +1,19 @@
+package cn.reghao.autodop.dmaster.machine.entity;
+
+import cn.reghao.autodop.dmaster.common.orm.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.persistence.Entity;
+
+/**
+ * @author reghao
+ * @date 2021-06-29 09:36:13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Entity
+public class Host extends BaseEntity<Integer> {
+    private String machineId;
+    private String env;
+}

+ 0 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MachineInfo.java

@@ -23,7 +23,6 @@ import javax.persistence.Entity;
 public class MachineInfo extends BaseEntity<Integer> {
     @Column(nullable = false, unique = true)
     private String machineId;
-    private String env;
     private OsInfo osInfo;
     @ElementCollection(targetClass = NetworkInfo.class)
     @LazyCollection(LazyCollectionOption.FALSE)

+ 19 - 10
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/MachineMonitorServiceImpl.java

@@ -35,19 +35,28 @@ public class MachineMonitorServiceImpl implements MonitorService<MachineMonitor>
 
     @Override
     public synchronized void addJob(MachineMonitor monitor, MonitorJob monitorJob) {
+        Map<String, MonitorJob> jobMap = monitor.getJobMap();
         String jobId = String.format("%s-%s", monitor.getMachineId(), monitorJob.getJobClassName());
-        monitorJob.setJobId(jobId);
-        monitorJob.setEnable(true);
-        monitor.getJobMap().put(monitorJob.getJobId(), monitorJob);
+        MonitorJob job = jobMap.get(jobId);
+        try {
+            if (job == null) {
+                // 添加任务
+                monitorJob.setJobId(jobId);
+                monitorJob.setEnable(true);
+                jobMap.put(jobId, monitorJob);
 
-        int runningJobs = monitor.getRunningJobs();
-        monitor.setRunningJobs(runningJobs+1);
-        int totalJobs = monitor.getTotalJobs();
-        monitor.setTotalJobs(totalJobs+1);
+                int runningJobs = monitor.getRunningJobs();
+                monitor.setRunningJobs(runningJobs+1);
+                int totalJobs = monitor.getTotalJobs();
+                monitor.setTotalJobs(totalJobs+1);
 
-        // TODO 这两个操作的状态应该保持一致
-        try {
-            monitorScheduler.addMachineMonitorJob(monitor, jobId);
+                monitorScheduler.addMachineMonitorJob(monitor, jobId);
+            } else {
+                // 修改任务
+                job.setCronExp(monitorJob.getCronExp());
+                monitorScheduler.modifyJob(jobId, monitorJob.getCronExp());
+            }
+            // TODO 两个操作的状态应该保持一致
             machineMonitorRepository.save(monitor);
         } catch (SchedulerException | IOException e) {
             log.error("{}", e.getMessage());

+ 8 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/MonitorScheduler.java

@@ -167,11 +167,17 @@ public class MonitorScheduler {
         }
     }
 
-    public void updateCronExp(String jobId, String cronExp) throws SchedulerException {
-        //scheduler.rescheduleJob()
+    public void modifyJob(String jobId, String cronExp) throws SchedulerException {
         Trigger trigger = scheduler.getTrigger(TriggerKey.triggerKey(jobId));
         JobDetail jobDetail = scheduler.getJobDetail(JobKey.jobKey(jobId));
         JobDataMap jobDataMap = jobDetail.getJobDataMap();
+
+        CronTrigger cronTrigger = TriggerBuilder.newTrigger()
+                .withIdentity(jobId)
+                .withSchedule(CronScheduleBuilder.cronSchedule(cronExp))
+                .build();
+
+        //scheduler.rescheduleJob()
     }
 
     public void updateNotifyGroup(String jobId, List<NotifyGroup> notifyGroups) {

+ 2 - 0
dmaster/src/main/resources/templates/machine/host.html

@@ -85,6 +85,8 @@
                            data-size="1200,600" href="#">详细</a>
                         <a class="open-popup" data-title="编辑" th:attr="data-url=@{'/machine/host/edit/'+${item.machineId}}"
                            data-size="800,600" href="#">编辑</a>
+                        <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.machineId} + ' 机器?'"
+                           th:href="@{'/api/machine/host' + ${item.machineId}}">删除</a>
                     </td>
                 </tr>
                 </tbody>