| borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/JobsRest.java | ●●●●● patch | view | raw | blame | history | |
| borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/SystemInfo.java | ●●●●● patch | view | raw | blame | history | |
| borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/SystemInfoRest.java | ●●●●● patch | view | raw | blame | history | |
| borgbutler-webapp/src/containers/WebApp.jsx | ●●●●● patch | view | raw | blame | history |
borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/JobsRest.java
@@ -66,17 +66,6 @@ return JsonUtils.toJson(queueList, prettyPrinter); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/statistics") /** * @return The total number of jobs queued or running (and other statistics): {@link de.micromata.borgbutler.BorgQueueStatistics}. * @see JsonUtils#toJson(Object, boolean) */ public String getStatistics() { return JsonUtils.toJson(BorgQueueExecutor.getInstance().getStatistics()); } private JsonJobQueue getQueue(String repo) { BorgQueueExecutor borgQueueExecutor = BorgQueueExecutor.getInstance(); BorgRepoConfig repoConfig = ConfigurationHandler.getConfiguration().getRepoConfig(repo); borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/SystemInfo.java
New file @@ -0,0 +1,20 @@ package de.micromata.borgbutler.server.rest; import de.micromata.borgbutler.BorgQueueStatistics; import lombok.Getter; import lombok.Setter; /** * Statistics of all the job queues, especially the number of total queued and running jobs. * This is used e. g. by the client for showing a badge near to the menu entry "job monitor" with the number * of Jobs in the queues. */ public class SystemInfo { @Getter @Setter private BorgQueueStatistics queueStatistics; @Getter @Setter private boolean configurationOK; } borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/SystemInfoRest.java
New file @@ -0,0 +1,30 @@ package de.micromata.borgbutler.server.rest; import de.micromata.borgbutler.BorgQueueExecutor; import de.micromata.borgbutler.json.JsonUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/system") public class SystemInfoRest { private static Logger log = LoggerFactory.getLogger(SystemInfoRest.class); @GET @Produces(MediaType.APPLICATION_JSON) @Path("info") /** * @return The total number of jobs queued or running (and other statistics): {@link de.micromata.borgbutler.BorgQueueStatistics}. * @see JsonUtils#toJson(Object, boolean) */ public String getStatistics() { SystemInfo systemInfonfo = new SystemInfo() .setQueueStatistics(BorgQueueExecutor.getInstance().getStatistics()) .setConfigurationOK(false); return JsonUtils.toJson(systemInfonfo); } } borgbutler-webapp/src/containers/WebApp.jsx
@@ -24,11 +24,11 @@ componentDidMount = () => { this.props.loadVersion(); this.interval = setInterval(() => this.fetchJobStatistics(), 5000); this.interval = setInterval(() => this.fetchSystemInfo(), 5000); }; fetchJobStatistics = () => { fetch(getRestServiceUrl('jobs/statistics'), { fetchSystemInfo = () => { fetch(getRestServiceUrl('system/info'), { method: 'GET', headers: { 'Accept': 'application/json' @@ -37,7 +37,7 @@ .then(response => response.json()) .then(json => { this.setState({ statistics: json systemInfo: json }); }) .catch(); @@ -45,8 +45,9 @@ render() { let jobsBadge = ''; if (this.state && this.state.statistics && this.state.statistics.numberOfRunningAndQueuedJobs > 0) { jobsBadge = <Badge color="danger" pill>{this.state.statistics.numberOfRunningAndQueuedJobs}</Badge>; const statistics = (this.state && this.state.systemInfo) ? this.state.systemInfo.queueStatistics : null; if (statistics && statistics.numberOfRunningAndQueuedJobs > 0) { jobsBadge = <Badge color="danger" pill>{statistics.numberOfRunningAndQueuedJobs}</Badge>; } let routes = [ ['Start', '/', Start],