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/queue/JsonJob.java | 28 +++++++++++++++++++++++++++-
1 files changed, 27 insertions(+), 1 deletions(-)
diff --git a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/queue/JsonJob.java b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/queue/JsonJob.java
index 596e3b6..8430945 100644
--- a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/queue/JsonJob.java
+++ b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/queue/JsonJob.java
@@ -1,11 +1,13 @@
package de.micromata.borgbutler.server.rest.queue;
+import com.fasterxml.jackson.annotation.JsonProperty;
import de.micromata.borgbutler.BorgJob;
import de.micromata.borgbutler.jobs.AbstractJob;
import de.micromata.borgbutler.json.borg.ProgressInfo;
import de.micromata.borgbutler.server.user.UserUtils;
import lombok.Getter;
import lombok.Setter;
+import org.apache.commons.lang3.StringUtils;
public class JsonJob {
@Getter
@@ -48,6 +50,7 @@
/**
* Builds and sets progressText from the progressInfo object if given.
+ *
* @return progressText
*/
public String buildProgressText() {
@@ -59,6 +62,13 @@
sb.append(progressInfo.getMessage());
}
if (progressInfo.getCurrent() > 0) {
+ if (StringUtils.indexOf(progressInfo.getMessage(), '%') < 0) {
+ // No percentage given by borg, try to create an own one:
+ short percentage = getProgressPercent();
+ if (percentage >= 0) {
+ sb.append(" ").append(percentage).append("%");
+ }
+ }
sb.append(" (").append(UserUtils.formatNumber(progressInfo.getCurrent()));
if (progressInfo.getTotal() > 0) {
sb.append("/").append(UserUtils.formatNumber(progressInfo.getTotal()));
@@ -68,9 +78,25 @@
if (progressInfo.isFinished()) {
sb.append(" (finished)");
}
- sb.append(".");
progressText = sb.toString();
return progressText;
}
+ /**
+ * If current and total of {@link ProgressInfo} is available, this value is given, otherwise this value is -1.
+ */
+ @JsonProperty
+ public short getProgressPercent() {
+ if (progressInfo == null || progressInfo.getTotal() <= 0) {
+ return -1;
+ }
+ long value = 100 * progressInfo.getCurrent() / progressInfo.getTotal();
+ if (value < 0) {
+ return 0;
+ }
+ if (value >= 100) {
+ return 100;
+ }
+ return (short) value;
+ }
}
--
Gitblit v1.10.0