package de.micromata.borgbutler.cache;
|
|
import de.micromata.borgbutler.BorgCommands;
|
import de.micromata.borgbutler.config.BorgRepoConfig;
|
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.RepoInfo;
|
import de.micromata.borgbutler.json.borg.RepoList;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.junit.jupiter.api.Test;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
import java.util.List;
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
|
public class CacheTest {
|
private static Logger log = LoggerFactory.getLogger(CacheTest.class);
|
|
@Test
|
void repoCacheTest() {
|
ConfigurationHandler configHandler = ConfigurationHandler.getInstance();
|
configHandler.read();
|
Configuration config = ConfigurationHandler.getConfiguration();
|
if (config.getRepoConfigs().size() == 0) {
|
log.info("No repos configured. Please configure repos first in: " + configHandler.getConfigFile().getAbsolutePath());
|
return;
|
}
|
ButlerCache butlerCache = ButlerCache.getInstance();
|
//butlerCache.removeAllCacheFiles();
|
butlerCache.read();
|
{
|
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.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, 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);
|
RepoList repoList = ButlerCache.getRepoListCache().get(repoConfig.getRepo());
|
if (repoList != null && CollectionUtils.isNotEmpty(repoList.getArchives())) {
|
Archive1 archive = repoList.getArchives().get(0);
|
if (archive != null) {
|
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();
|
}
|
|
private void refreshRepoInfoCache(Configuration config, RepoInfoCache repoInfoCache) {
|
for (BorgRepoConfig repo : config.getRepoConfigs()) {
|
log.info("Processing repo info '" + repo + "'");
|
RepoInfo repoInfo = BorgCommands.info(repo);
|
repoInfoCache.upsert(repo, repoInfo);
|
repoInfo = repoInfoCache.get(repo, repoInfo.getRepository().getId());
|
assertNotNull(repoInfo);
|
}
|
}
|
|
private void refreshRepoListCache(Configuration config, RepoListCache repoListCache) {
|
for (BorgRepoConfig repo : config.getRepoConfigs()) {
|
log.info("Processing repo list '" + repo + "'");
|
RepoList repoList = BorgCommands.list(repo);
|
repoListCache.upsert(repo, repoList);
|
repoList = repoListCache.get(repo, repoList.getRepository().getId());
|
assertNotNull(repoList);
|
}
|
}
|
|
private void refresArchiveListCache(Configuration config, RepoListCache repoListCache) {
|
for (BorgRepoConfig repo : config.getRepoConfigs()) {
|
log.info("Processing repo list '" + repo + "'");
|
RepoList repoList = BorgCommands.list(repo);
|
repoListCache.upsert(repo, repoList);
|
repoList = repoListCache.get(repo, repoList.getRepository().getId());
|
assertNotNull(repoList);
|
}
|
}
|
}
|