public StatusAllHosts status(Application application, Duration timeout) {
        List<HostStatus> hostStatuses = new ArrayList<>();
        List <Future<HostStatus>> results = new ArrayList<>();
        application.getModel().getHosts()
                .forEach(host -> host.getServices()
                        .stream()
                        .filter(service -> "configproxy".equals(service.getServiceType()))
                        .forEach(service -> {
                            results.add(rpcExecutor.submit(() -> getHostStatus(service.getHostName(), getRpcPort(service), timeout)));
                        }));
        // wait for all
        results.forEach(future -> {
            try {
                hostStatuses.add(future.get());
            } catch (InterruptedException | ExecutionException e) {
                log.log(Level.WARNING, "Failed getting file distribution status", e);
            }
        });
        return createStatusForAllHosts(hostStatuses);
    }
File distribution status for each host in the application

@author hmusum
configserver/src/main/java/com/yahoo/vespa/config/server/application/FileDistributionStatus.java