From e70f062550b0c611f076aa784f284a27e0ffe715 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sat, 05 Jan 2019 14:15:43 +0000
Subject: [PATCH] Job monitor...

---
 borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/JobsRest.java |   49 +++++++++++++++++++++++--------------------------
 1 files changed, 23 insertions(+), 26 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 3555258..017711f 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
@@ -63,34 +63,27 @@
         if (testList == null) {
             testList = new ArrayList<>();
             JsonJobQueue queue = new JsonJobQueue().setRepo("My Computer");
-            addTestJob(queue, "Calculating statistics... ",
-                    "Loading info of archive 'my-computer-2018-12-05T23:10:33' of repo 'My-Computer-Cloud'.", 0, 1000);
-            addTestJob(queue, null,
-                    "Loading list of files of archive 'my-computer-2018-12-05T23:10:33' of repo 'My-Computer-Cloud'.", 0, 0);
+            addTestJob(queue, "info", "my-macbook", 0, 2342);
+            addTestJob(queue, "list", "my-macbook", -1, -1);
             testList.add(queue);
 
             queue = new JsonJobQueue().setRepo("My Server");
-            addTestJob(queue, "Getting file list...",
-                    "Loading list of files of archive 'my-server-2018-12-05T23:10:33' of repo 'My-Server-Cloud'.", 0, 0);
-            addTestJob(queue, null,
-                    "Loading info of archive 'my-server-2018-12-05T23:10:33' of repo 'My-Server-Cloud'.", 0, 1000);
+            addTestJob(queue, "list", "my-server", 0, 1135821);
+            addTestJob(queue, "info", "my-server", -1, -1);
             testList.add(queue);
         } else {
             for (JsonJobQueue jobQueue : testList) {
                 for (JsonJob job : jobQueue.getJobs()) {
                     if (job.getStatus() != AbstractJob.Status.RUNNING) continue;
+                    long current = job.getProgressInfo().getCurrent();
+                    long total = job.getProgressInfo().getTotal();
+                    current += Math.random() * total / 30;
+                    if (current > total) {
+                        current = 0; // Reset to beginning.
+                    }
+                    job.getProgressInfo().setCurrent(current);
                     if (job.getProgressText().startsWith("Calculating")) {
-                        long current = job.getProgressInfo().getCurrent();
-                        current += Math.random() * 100;
-                        if (current > 1000) {
-                            current = 0; // Reset to beginning.
-                        }
-                        job.getProgressInfo().setCurrent(current);
-                        job.getProgressInfo().setMessage("Calculating statistics...  " + Math.round(current / 10) + "%");
-                    } else {
-                        long current = job.getProgressInfo().getCurrent();
-                        current += Math.random() * 10000;
-                        job.getProgressInfo().setCurrent(current);
+                        job.getProgressInfo().setMessage("Calculating statistics...  " + Math.round(100 * current / total) + "%");
                     }
                     job.buildProgressText();
                 }
@@ -100,20 +93,24 @@
     }
 
 
-    private JsonJob addTestJob(JsonJobQueue queue, String message, String description, long current, long total) {
+    private JsonJob addTestJob(JsonJobQueue queue, String operation, String host, long current, long total) {
         ProgressInfo msg = new ProgressInfo()
-                .setMessage(message)
                 .setCurrent(current)
                 .setTotal(total);
         JsonJob job = new JsonJob()
                 .setProgressInfo(msg)
-                .setDescription(description)
-                .setStatus(AbstractJob.Status.QUEUED)
-                .setCommandLineAsString("borg info --json --log-json --progress ssh://...:23/./backups/my-computer::my-computer-2018-12-05T23:10:33");
+                .setStatus(AbstractJob.Status.QUEUED);
+        if ("info".equals(operation)) {
+            msg.setMessage("Calculating statistics... ");
+            job.setDescription("Loading info of archive '" + host + "-2018-12-05T23:10:33' of repo '" + queue.getRepo() + "'.")
+                    .setCommandLineAsString("borg info --json --log-json --progress ssh://...:23/./backups/" + host + "::" + host + "-2018-12-05T23:10:33");
+        } else {
+            msg.setMessage("Getting file list... ");
+            job.setCommandLineAsString("borg list --json-lines ssh://...:23/./backups/" + host + "::" + host + "-2018-12-05T17:30:38");
+        }
         job.buildProgressText();
-        if (message != null) {
+        if (current >= 0) {
             job.setStatus(AbstractJob.Status.RUNNING);
-
         } else {
             job.setStatus(AbstractJob.Status.QUEUED);
         }

--
Gitblit v1.10.0