From 3b6408569b692bf2c12d8b3e355d3fba5c41a41a Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sun, 06 Jan 2019 22:08:17 +0000
Subject: [PATCH] BorgQueueStatistics

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/BorgQueueExecutor.java |   22 +++++++++++++++++++++-
 1 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgQueueExecutor.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgQueueExecutor.java
index a2e1968..023ba42 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgQueueExecutor.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgQueueExecutor.java
@@ -15,6 +15,7 @@
 public class BorgQueueExecutor {
     private Logger log = LoggerFactory.getLogger(BorgQueueExecutor.class);
     private static final BorgQueueExecutor instance = new BorgQueueExecutor();
+    private static final String NONE_REPO_QUEUE = "--NO_REPO--";
 
     public static BorgQueueExecutor getInstance() {
         return instance;
@@ -23,6 +24,25 @@
     // key is the repo name.
     private Map<String, JobQueue<String>> queueMap = new HashMap<>();
 
+    public BorgQueueStatistics getStatistics() {
+        BorgQueueStatistics statistics = new BorgQueueStatistics();
+        Iterator<JobQueue<String>> it = queueMap.values().iterator();
+        while (it.hasNext()) {
+            JobQueue<?> queue = it.next();
+            statistics.totalNumberOfQueues++;
+            int queueSize = queue.getQueueSize();
+            if (queueSize > 0) {
+                statistics.numberOfActiveQueues++;
+                statistics.numberOfRunningAndQueuedJobs += queueSize;
+            }
+            int oldJobsSize = queue.getOldJobsSize();
+            if (oldJobsSize > 0) {
+                statistics.numberOfOldJobs += oldJobsSize;
+            }
+        }
+        return statistics;
+    }
+
     /**
      * @return A list of all repos with queues.
      */
@@ -98,7 +118,7 @@
     }
 
     private String getQueueName(BorgRepoConfig repoConfig) {
-        return repoConfig != null ? repoConfig.getId() : "--NO_REPO--";
+        return repoConfig != null ? repoConfig.getId() : NONE_REPO_QUEUE;
     }
 
     public BorgJob<Void> execute(BorgCommand command) {

--
Gitblit v1.10.0