}
public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(ClusterSpec spec,
Predicate<NodeMetadata> condition, Statement statement) throws IOException, RunScriptOnNodesException {
Credentials credentials = new Credentials(spec.getClusterUser(), spec.getPrivateKey());
ComputeServiceContext context = getCompute().apply(spec);
condition = Predicates.and(runningInGroup(spec.getClusterName()), condition);
return context.getComputeService().runScriptOnNodesMatching(condition,
statement, overrideCredentialsWith(credentials).wrapInInitScript(false).runAsRoot(false));