| borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java | ●●●●● patch | view | raw | blame | history | |
| borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/Cache.java | ●●●●● patch | view | raw | blame | history | |
| borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/Encryption.java | ●●●●● patch | view | raw | blame | history | |
| borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/RepoInfo.java | ●●●●● patch | view | raw | blame | history | |
| borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/Repository.java | ●●●●● patch | view | raw | blame | history | |
| borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/Stats.java | ●●●●● patch | view | raw | blame | history | |
| borgbutler-core/src/test/java/de/micromata/borgbutler/BorgCommandsTest.java | ●●●●● patch | view | raw | blame | history |
borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
@@ -3,6 +3,8 @@ import de.micromata.borgbutler.config.BorgRepoConfig; import de.micromata.borgbutler.config.Configuration; import de.micromata.borgbutler.config.ConfigurationHandler; import de.micromata.borgbutler.json.JsonUtils; import de.micromata.borgbutler.json.borg.RepoInfo; import org.apache.commons.exec.*; import org.apache.commons.exec.environment.EnvironmentUtils; import org.apache.commons.io.output.ByteArrayOutputStream; @@ -17,10 +19,11 @@ public class BorgCommands { private static Logger log = LoggerFactory.getLogger(BorgCommands.class); public static String info(BorgRepoConfig repoConfig) { public static RepoInfo info(BorgRepoConfig repoConfig) { try { CommandLine cmdLine = new CommandLine(ConfigurationHandler.getConfiguration().getBorgCommand()); cmdLine.addArgument("info"); cmdLine.addArgument("--json"); cmdLine.addArgument(repoConfig.getRepo()); DefaultExecutor executor = new DefaultExecutor(); //executor.setExitValue(2); @@ -32,7 +35,10 @@ executor.setStreamHandler(streamHandler); log.info("Executing '" + cmdLine.getExecutable() + " " + StringUtils.join(cmdLine.getArguments(), " ") + "'..."); executor.execute(cmdLine, getEnvironment(repoConfig)); return (outputStream.toString(Charset.forName("UTF-8"))); String json = outputStream.toString(Charset.forName("UTF-8")); RepoInfo repoInfo = JsonUtils.fromJson(RepoInfo.class, json); repoInfo.setOriginalJson(json); return repoInfo; } catch (IOException ex) { log.error("Error while executing borg command: " + ex.getMessage(), ex); return null; borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/Cache.java
New file @@ -0,0 +1,10 @@ package de.micromata.borgbutler.json.borg; import lombok.Getter; public class Cache { @Getter private String path; @Getter private Stats stats; } borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/Encryption.java
New file @@ -0,0 +1,8 @@ package de.micromata.borgbutler.json.borg; import lombok.Getter; public class Encryption { @Getter private String mode; } borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/RepoInfo.java
New file @@ -0,0 +1,27 @@ package de.micromata.borgbutler.json.borg; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import de.micromata.borgbutler.json.JsonUtils; import lombok.Getter; import lombok.Setter; public class RepoInfo { @Getter @JsonProperty("security_dir") private String securityDir; @Getter private Cache cache; @Getter private Encryption encryption; @Getter private Repository repository; @Getter @Setter @JsonIgnore private String originalJson; public String toString() { return JsonUtils.toJson(this, true); } } borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/Repository.java
New file @@ -0,0 +1,14 @@ package de.micromata.borgbutler.json.borg; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; public class Repository { @Getter private String id; @Getter @JsonProperty("last_modified") private String lastModified; @Getter private String location; } borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/Stats.java
New file @@ -0,0 +1,25 @@ package de.micromata.borgbutler.json.borg; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; public class Stats { @Getter @JsonProperty("total_chunks") private long totalChunks; @Getter @JsonProperty("total_csize") private long totalCSize; @Getter @JsonProperty("total_size") private long totalSize; @Getter @JsonProperty("total_unique_chunks") private long totalUniqueChunks; @Getter @JsonProperty("unique_csize") private long uniqueCSize; @Getter @JsonProperty("unique_size") private long uniqueSize; } borgbutler-core/src/test/java/de/micromata/borgbutler/BorgCommandsTest.java
@@ -3,6 +3,7 @@ import de.micromata.borgbutler.config.BorgRepoConfig; import de.micromata.borgbutler.config.Configuration; import de.micromata.borgbutler.config.ConfigurationHandler; import de.micromata.borgbutler.json.borg.RepoInfo; import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,7 +21,9 @@ } for (BorgRepoConfig repo : config.getRepos()) { log.info("Processing repo '" + repo + "'"); log.info(BorgCommands.info(repo)); RepoInfo repoInfo = BorgCommands.info(repo); log.info("Repo info: " + repoInfo); log.info("Repo json: " + repoInfo.getOriginalJson()); } } }