diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiTask.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiTask.java index 3d58685..176e3f0 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiTask.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/DiTask.java @@ -11,6 +11,7 @@ public interface DiTask { void setDevice(DiDevice device); // get device DiDevice getDevice(); + void init(); // run void run(); // stop diff --git a/src/src/main/java/com/my/graphiteDigesterBg/diframe/api/DiApiTask.java b/src/src/main/java/com/my/graphiteDigesterBg/diframe/api/DiApiTask.java index 81f9966..619dbbd 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/diframe/api/DiApiTask.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/diframe/api/DiApiTask.java @@ -1,5 +1,6 @@ package com.my.graphiteDigesterBg.diframe.api; import com.my.graphiteDigesterBg.diframe.*; +import com.my.graphiteDigesterBg.diframe.model.DiMdbTaskExecution; import com.my.graphiteDigesterBg.diframe.model.DiMdbUser; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; @@ -42,6 +43,7 @@ public class DiApiTask extends DiApiControllerBase { DiTaskManager taskManager = this.device.getTaskManager(); DiTask task = taskManager.generateTask(name, taskParams); task.setUser(user); + task.init(); executor.appendTask(task); return this.success(Map.of("id", task.getUUID())); } @@ -93,4 +95,15 @@ public class DiApiTask extends DiApiControllerBase { return this.success(actionResult); } + + @ResponseBody + @PostMapping("/api/task/execution-get") + public DiApiResponse executionGet(@RequestBody Map params) { + String id = (String)params.get("id"); + var exec = DiActiveRecord.findOne(DiMdbTaskExecution.class, Map.of("uuid", id)); + if ( null == exec ) { + return this.error("execution not found"); + } + return this.success(exec); + } }