mirror of https://github.com/micromata/borgbackup-butler.git

Kai Reinhard
14.04.2019 d8523faa15d17a70009f0391ef535c04c1c9f6bc
Demo mode...
1 files added
6 files modified
100 ■■■■■ changed files
borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java 2 ●●● patch | view | raw | blame | history
borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java 7 ●●●●● patch | view | raw | blame | history
borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java 18 ●●●● patch | view | raw | blame | history
borgbutler-core/src/main/java/de/micromata/borgbutler/config/ConfigurationHandler.java 4 ●●●● patch | view | raw | blame | history
borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java 67 ●●●●● patch | view | raw | blame | history
borgbutler-core/src/main/resources/demodata/repo-info.json.gz patch | view | raw | blame | history
borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/ReposRest.java 2 ●●●●● patch | view | raw | blame | history
borgbutler-core/src/main/java/de/micromata/borgbutler/BorgJob.java
@@ -106,7 +106,7 @@
    @Override
    public JobResult<String> execute() {
        if (DemoRepos.isDemo(command.getRepoConfig().getId())) {
        if (DemoRepos.isDemo(command.getRepoConfig().getRepo())) {
            return DemoRepos.execute(command);
        }
        return super.execute();
borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
@@ -8,7 +8,6 @@
import de.micromata.borgbutler.data.ArchiveShortInfo;
import de.micromata.borgbutler.data.FileSystemFilter;
import de.micromata.borgbutler.data.Repository;
import de.micromata.borgbutler.demo.DemoRepos;
import de.micromata.borgbutler.json.borg.BorgFilesystemItem;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.jcs.JCS;
@@ -60,9 +59,6 @@
                }
            }
        }
        if (DemoRepos.isDemo(idOrName)) {
            return DemoRepos.getRepo(idOrName);
        }
        log.warn("Repo with id or name '" + idOrName + "' not found.");
        return null;
    }
@@ -147,9 +143,6 @@
            return repository;
        }
        BorgRepoConfig repoConfig = ConfigurationHandler.getConfiguration().getRepoConfig(repository.getName());
        if (repoConfig == null && DemoRepos.isDemo(idOrName)) {
            repoConfig = DemoRepos.getRepoConfig(idOrName);
        }
        BorgCommands.list(repoConfig, repository);
        updateArchivesCacheStatusAndShortInfos(repository);
        return repository;
borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
@@ -2,6 +2,7 @@
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import de.micromata.borgbutler.demo.DemoRepos;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
@@ -45,7 +46,6 @@
    @JsonIgnore
    private File restoreHomeDir;
    @Getter
    private List<BorgRepoConfig> repoConfigs = new ArrayList<>();
    public void add(BorgRepoConfig repoConfig) {
@@ -56,7 +56,7 @@
        if (idOrName == null) {
            return null;
        }
        for (BorgRepoConfig repoConfig : repoConfigs) {
        for (BorgRepoConfig repoConfig : getRepoConfigs()) {
            if (StringUtils.equals(idOrName, repoConfig.getRepo()) || StringUtils.equals(idOrName, repoConfig.getId())) {
                return repoConfig;
            }
@@ -83,4 +83,18 @@
        this.maxArchiveContentCacheCapacityMb = other.maxArchiveContentCacheCapacityMb;
        this.showDemoRepos = other.showDemoRepos;
    }
    public List<BorgRepoConfig> getRepoConfigs() {
        if (!ConfigurationHandler.getConfiguration().isShowDemoRepos()) {
            return repoConfigs;
        }
        List<BorgRepoConfig> result = new ArrayList<>();
        result.addAll(repoConfigs);
        DemoRepos.addDemoRepos(result);
        return result;
    }
    List<BorgRepoConfig> _getRepoConfigs() {
        return repoConfigs;
    }
}
borgbutler-core/src/main/java/de/micromata/borgbutler/config/ConfigurationHandler.java
@@ -48,8 +48,8 @@
                }
            }
            this.configuration = JsonUtils.fromJson(configClazz, json);
            if (this.configuration.getRepoConfigs() != null) {
                for (BorgRepoConfig repoConfig : this.configuration.getRepoConfigs()) {
            if (this.configuration._getRepoConfigs() != null) {
                for (BorgRepoConfig repoConfig : this.configuration._getRepoConfigs()) {
                    if (StringUtils.isBlank(repoConfig.getDisplayName())) {
                        repoConfig.setDisplayName(repoConfig.getRepo());
                    }
borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java
@@ -4,7 +4,6 @@
import de.micromata.borgbutler.config.BorgRepoConfig;
import de.micromata.borgbutler.config.ConfigurationHandler;
import de.micromata.borgbutler.config.Definitions;
import de.micromata.borgbutler.data.Repository;
import de.micromata.borgbutler.jobs.JobResult;
import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
import org.apache.commons.io.IOUtils;
@@ -12,7 +11,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
@@ -21,19 +22,19 @@
    private static final String DEMO_IDENTIFIER = "borgbutler-demo";
    private static final String[] REPOS = {"fast", "slow", "very-slow"};
    private static List<Repository> demoRepos;
    private static List<BorgRepoConfig> demoRepos;
    /**
     * If configured by the user, demo repositories are added to the given list. If not configured this method does nothing.
     *
     * @param repositoryList
     */
    public static void addDemoRepos(List<Repository> repositoryList) {
    public static void addDemoRepos(List<BorgRepoConfig> repositoryList) {
        if (!ConfigurationHandler.getConfiguration().isShowDemoRepos()) {
            return;
        }
        init();
        for (Repository repo : demoRepos) {
        for (BorgRepoConfig repo : demoRepos) {
            repositoryList.add(repo);
        }
    }
@@ -42,33 +43,6 @@
        return StringUtils.startsWith(idOrName, DEMO_IDENTIFIER);
    }
    public static Repository getRepo(String idOrName) {
        if (!isDemo(idOrName)) {
            log.info("Given idOrName doesn't fit any demo repository: " + idOrName);
            return null;
        }
        init();
        for (Repository repo : demoRepos) {
            if (StringUtils.equals(idOrName, repo.getId())) {
                return repo;
            }
        }
        return null;
    }
    public static BorgRepoConfig getRepoConfig(String idOrName) {
        BorgRepoConfig repoConfig = new BorgRepoConfig();
        Repository repository = getRepo(idOrName);
        if (repository == null) {
            log.info("Given idOrName doesn't fit any demo repository: " + idOrName);
            return null;
        }
        repoConfig.setRepo(repository.getName())
                .setId(repository.getId())
                .setDisplayName(repository.getName());
        return repoConfig;
    }
    public static JobResult<String> execute(BorgCommand command) {
        StringBuilder sb = new StringBuilder();
        if (command.getArchive() != null) {
@@ -93,19 +67,20 @@
    }
    private static void init() {
        demoRepos = new ArrayList<>();
        demoRepos.add(new Repository()
                .setId(DEMO_IDENTIFIER + "-fast")
                .setName(DEMO_IDENTIFIER + "-fast")
                .setDisplayName("Demo repository fast"));
        demoRepos.add(new Repository()
                .setId(DEMO_IDENTIFIER + "-slow")
                .setName(DEMO_IDENTIFIER + "-slow")
                .setDisplayName("Demo repository slow"));
        demoRepos.add(new Repository()
                .setId(DEMO_IDENTIFIER + "-very-slow")
                .setName(DEMO_IDENTIFIER + "-very-slow")
                .setDisplayName("Demo repository very-slow"));
        synchronized (DEMO_IDENTIFIER) {
            if (demoRepos != null) {
                return;
            }
            demoRepos = new ArrayList<>();
            demoRepos.add(new BorgRepoConfig()
                    .setRepo(DEMO_IDENTIFIER + "-fast")
                    .setDisplayName("Demo repository fast"));
            demoRepos.add(new BorgRepoConfig()
                    .setRepo(DEMO_IDENTIFIER + "-slow")
                    .setDisplayName("Demo repository slow"));
            demoRepos.add(new BorgRepoConfig()
                    .setRepo(DEMO_IDENTIFIER + "-very-slow")
                    .setDisplayName("Demo repository very-slow"));
        }
    }
}
borgbutler-core/src/main/resources/demodata/repo-info.json.gz
Binary files differ
borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/ReposRest.java
@@ -4,7 +4,6 @@
import de.micromata.borgbutler.data.Repository;
import de.micromata.borgbutler.json.JsonUtils;
import de.micromata.borgbutler.json.borg.BorgRepository;
import de.micromata.borgbutler.demo.DemoRepos;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -31,7 +30,6 @@
     */
    public String getList(@QueryParam("prettyPrinter") boolean prettyPrinter) {
        List<Repository> repositories = ButlerCache.getInstance().getAllRepositories();
        DemoRepos.addDemoRepos(repositories);
        if (CollectionUtils.isEmpty(repositories)) {
            return "[]";
        }