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

...
Kai Reinhard
09.02.2018 0a7181d0d1f040a3aff9f41256171a7b1b7ba3da
...
3 files modified
61 ■■■■■ changed files
borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java 16 ●●●● patch | view | raw | blame | history
borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java 19 ●●●●● patch | view | raw | blame | history
borgbutler-core/src/test/java/de/micromata/borgbutler/cache/CacheTest.java 26 ●●●● patch | view | raw | blame | history
borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
@@ -4,7 +4,6 @@
import de.micromata.borgbutler.config.Configuration;
import de.micromata.borgbutler.config.ConfigurationHandler;
import de.micromata.borgbutler.json.JsonUtils;
import de.micromata.borgbutler.json.borg.Archive1;
import de.micromata.borgbutler.json.borg.ArchiveList;
import de.micromata.borgbutler.json.borg.RepoInfo;
import de.micromata.borgbutler.json.borg.RepoList;
@@ -45,8 +44,8 @@
     * @param archive
     * @return
     */
    public static ArchiveList info(BorgRepoConfig repoConfig, Archive1 archive) {
        String json = execute(repoConfig, "info", repoConfig.getRepo() + "::" + archive.getArchive(), "--json");
    public static ArchiveList info(BorgRepoConfig repoConfig, String archive) {
        String json = execute(repoConfig, "info", repoConfig.getRepo() + "::" + archive, "--json");
        if (json == null) {
            return null;
        }
@@ -65,6 +64,17 @@
        return repoList;
    }
    public static String list(BorgRepoConfig repoConfig, String archive) {
        String json = execute(repoConfig, "list", repoConfig.getRepo() + "::" + archive,
                "--json-lines");
        if (json == null) {
            return null;
        }
       // RepoList repoList = JsonUtils.fromJson(RepoList.class, json);
       // repoList.setOriginalJson(json);
        return json;
    }
    private static String execute(BorgRepoConfig repoConfig, String command, String repoOrArchive, String... args) {
        CommandLine cmdLine = new CommandLine(ConfigurationHandler.getConfiguration().getBorgCommand());
        cmdLine.addArgument(command);
borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
@@ -1,6 +1,7 @@
package de.micromata.borgbutler.cache;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -13,8 +14,11 @@
    public static final String CACHE_DIR_NAME = ".borgbutler";
    private static ButlerCache instance = new ButlerCache();
    @Getter
    private RepoInfoCache repoInfoCache;
    @Getter
    private RepoListCache repoListCache;
    private ArchiveListCache archiveListCache;
    private List<AbstractCache> caches;
    @JsonIgnore
@@ -24,14 +28,6 @@
        return instance;
    }
    public static RepoInfoCache getRepoInfoCache() {
        return instance.repoInfoCache;
    }
    public static RepoListCache getRepoListCache() {
        return instance.repoListCache;
    }
    public void read() {
        for (AbstractCache cache : caches) {
            cache.read();
@@ -67,10 +63,9 @@
            log.info("Creating cache dir: " + cacheDir.getAbsolutePath());
            cacheDir.mkdir();
        }
        repoInfoCache = new RepoInfoCache(cacheDir);
        repoListCache = new RepoListCache(cacheDir);
        caches = new ArrayList<>();
        caches.add(repoInfoCache);
        caches.add(repoListCache);
        caches.add(repoInfoCache = new RepoInfoCache(cacheDir));
        caches.add(repoListCache = new RepoListCache(cacheDir));
        caches.add(archiveListCache = new ArchiveListCache(cacheDir));
    }
}
borgbutler-core/src/test/java/de/micromata/borgbutler/cache/CacheTest.java
@@ -5,7 +5,6 @@
import de.micromata.borgbutler.config.Configuration;
import de.micromata.borgbutler.config.ConfigurationHandler;
import de.micromata.borgbutler.json.borg.Archive1;
import de.micromata.borgbutler.json.borg.ArchiveList;
import de.micromata.borgbutler.json.borg.RepoInfo;
import de.micromata.borgbutler.json.borg.RepoList;
import org.apache.commons.collections4.CollectionUtils;
@@ -35,20 +34,30 @@
        //butlerCache.removeAllCacheFiles();
        butlerCache.read();
        {
            RepoInfoCache repoInfoCache = ButlerCache.getRepoInfoCache();
            RepoInfoCache repoInfoCache = ButlerCache.getInstance().getRepoInfoCache();
            if (repoInfoCache.getElements().size() != config.getRepoConfigs().size()) {
                refreshRepoInfoCache(config, repoInfoCache);
            }
            assertEquals(config.getRepoConfigs().size(), repoInfoCache.getElements().size());
        }
        {
            RepoListCache repoListCache = ButlerCache.getRepoListCache();
            RepoListCache repoListCache = ButlerCache.getInstance().getRepoListCache();
            if (repoListCache.getElements().size() != config.getRepoConfigs().size()) {
                refreshRepoListCache(config, repoListCache);
            }
            assertEquals(config.getRepoConfigs().size(), repoListCache.getElements().size());
        }
        {
        List<BorgRepoConfig> repoConfigs = ConfigurationHandler.getConfiguration().getRepoConfigs();
        Archive1 archive = null;
        BorgRepoConfig repoConfig = null;
        if (CollectionUtils.isNotEmpty(repoConfigs)) {
            repoConfig = repoConfigs.get(0);
            RepoList repoList = ButlerCache.getInstance().getRepoListCache().get(repoConfig.getRepo());
            if (repoList != null && CollectionUtils.isNotEmpty(repoList.getArchives())) {
                archive = repoList.getArchives().get(0);
            }
        }
        {/*
            List<BorgRepoConfig> repoConfigs = ConfigurationHandler.getConfiguration().getRepoConfigs();
            if (CollectionUtils.isNotEmpty(repoConfigs)) {
                BorgRepoConfig repoConfig = repoConfigs.get(0);
@@ -56,10 +65,17 @@
                if (repoList != null && CollectionUtils.isNotEmpty(repoList.getArchives())) {
                    Archive1 archive = repoList.getArchives().get(0);
                    if (archive != null) {
                        ArchiveList list = BorgCommands.info(repoConfig, archive);
                        ArchiveList list = ButlerCache.getArchiveListCache().get(archive.getArchive());
                        ArchiveList list = BorgCommands.info(repoConfig, archive.getArchive());
                        log.info(list.toString());
                    }
                }
            }*/
        }
        {
            if (archive != null) {
                String json = BorgCommands.list(repoConfig, archive.getArchive());
                log.info(json);
            }
        }
        butlerCache.save();