From 67dd1243073e766178dd70dd2f45aa5bc77ec529 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sat, 05 Jan 2019 22:03:29 +0000
Subject: [PATCH] Job monitor: Cancellation of jobs...

---
 borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/JobsRest.java |   34 ++++++++++++++++++++++------------
 1 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/JobsRest.java b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/JobsRest.java
index 5991560..382b331 100644
--- a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/JobsRest.java
+++ b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/JobsRest.java
@@ -59,34 +59,43 @@
     }
 
     @Path("/cancel")
-    @PUT
-    @Produces(MediaType.APPLICATION_JSON)
+    @GET
     /**
-     * @param testMode If true, then a test job list is created.
-     * @param prettyPrinter If true then the json output will be in pretty format.
-     * @return Job queues as json string.
-     * @see JsonUtils#toJson(Object, boolean)
+     * @param uniqueJobNumberString The id of the job to cancel.
      */
-    public void cancelJob(@QueryParam("job") String job, @QueryParam("prettyPrinter") boolean prettyPrinter) {
-        log.info("Cancelling job");
+    public void cancelJob(@QueryParam("uniqueJobNumber") String uniqueJobNumberString) {
+        Long uniqueJobNumber = null;
+        try {
+            uniqueJobNumber = Long.parseLong(uniqueJobNumberString);
+        } catch (NumberFormatException ex) {
+            log.error("Can't cancel job, because unique job number couln't be parsed (long value expected): " + uniqueJobNumberString);
+            return;
+        }
+        BorgQueueExecutor.getInstance().cancelJob(uniqueJobNumber);
     }
 
     /**
      * Only for test purposes and development.
+     *
      * @param prettyPrinter
      * @return
      */
     private String returnTestList(boolean prettyPrinter) {
         if (testList == null) {
             testList = new ArrayList<>();
+            long uniqueJobNumber = 100000;
             JsonJobQueue queue = new JsonJobQueue().setRepo("My Computer");
-            addTestJob(queue, "info", "my-macbook", 0, 2342);
-            addTestJob(queue, "list", "my-macbook", -1, -1);
+            addTestJob(queue, "info", "my-macbook", 0, 2342)
+                    .setUniqueJobNumber(uniqueJobNumber++);
+            addTestJob(queue, "list", "my-macbook", -1, -1)
+                    .setUniqueJobNumber(uniqueJobNumber++);
             testList.add(queue);
 
             queue = new JsonJobQueue().setRepo("My Server");
-            addTestJob(queue, "list", "my-server", 0, 1135821);
-            addTestJob(queue, "info", "my-server", -1, -1);
+            addTestJob(queue, "list", "my-server", 0, 1135821)
+                    .setUniqueJobNumber(uniqueJobNumber++);
+            addTestJob(queue, "info", "my-server", -1, -1)
+                    .setUniqueJobNumber(uniqueJobNumber++);
             testList.add(queue);
         } else {
             for (JsonJobQueue jobQueue : testList) {
@@ -117,6 +126,7 @@
 
     /**
      * Only for test purposes and development.
+     *
      * @param queue
      * @param operation
      * @param host

--
Gitblit v1.10.0