@Override
protected Map<Path, Distribution> operate(final PasswordCallback callback, final Path file) throws BackgroundException {
final DistributionConfiguration feature = session.getFeature(DistributionConfiguration.class);
if(null == feature) {
return Collections.emptyMap();
}
final AttributedList<Path> containers = new SwiftContainerListService(session, new SwiftLocationFeature.SwiftRegion(session.getHost().getRegion())).list(file, new DisabledListProgressListener());
final Map<Path, Distribution> distributions = new ConcurrentHashMap<>();
for(Path container : containers) {
for(Distribution.Method method : feature.getMethods(container)) {
final Distribution distribution = feature.read(container, method, new DisabledLoginCallback());
if(log.isInfoEnabled()) {
log.info(String.format("Cache distribution %s", distribution));
}
distributions.put(container, distribution);
}
}
return distributions;
}
}