class BaseSaltJobRunner implements SaltJobRunner {

    public Set<String> collectMissingHostnames(Collection<String> succeededHostnames) {
        Map<String, String> shortHostnameToHostnameMap =
                allNode.stream().collect(Collectors.toMap(node -> getShortHostName(node.getHostname()), Node::getHostname));
        Set<String> resolvedSucceededHostnames =
                succeededHostnames.stream().map(hostname -> shortHostnameToHostnameMap.get(getShortHostName(hostname))).collect(Collectors.toSet());
        return targetHostnames.stream().filter(t -> !resolvedSucceededHostnames.contains(t)).collect(Collectors.toSet());
    }

    protected  BaseSaltJobRunner(Set<String> targetHostnames, Set<Node> allNode);

}