/** * @see org.jclouds.compute.ComputeService#runScriptOnNodesMatching(com.google.common.base.Predicate, org.jclouds.scriptbuilder.domain.Statement, org.jclouds.compute.options.RunScriptOptions) */ @Override public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<NodeMetadata> filter, String runScript) throws RunScriptOnNodesException { return computeService.runScriptOnNodesMatching(filter, runScript); }
/** * @see org.jclouds.compute.ComputeService#runScriptOnNodesMatching(com.google.common.base.Predicate, org.jclouds.scriptbuilder.domain.Statement, org.jclouds.compute.options.RunScriptOptions) */ @Override public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<NodeMetadata> filter, Statement runScript) throws RunScriptOnNodesException { return computeService.runScriptOnNodesMatching(filter, runScript); }
/** * @see org.jclouds.compute.ComputeService#runScriptOnNodesMatching(com.google.common.base.Predicate, org.jclouds.scriptbuilder.domain.Statement, org.jclouds.compute.options.RunScriptOptions) */ @Override public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, String runScript) throws RunScriptOnNodesException { return computeService.runScriptOnNodesMatching(filter, runScript); }
/** * @see org.jclouds.compute.ComputeService#runScriptOnNodesMatching(com.google.common.base.Predicate, org.jclouds.scriptbuilder.domain.Statement, org.jclouds.compute.options.RunScriptOptions) */ @Override public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, Statement runScript) throws RunScriptOnNodesException { return computeService.runScriptOnNodesMatching(filter, runScript); }
/** * @see org.jclouds.compute.ComputeService#runScriptOnNodesMatching(com.google.common.base.Predicate, org.jclouds.scriptbuilder.domain.Statement, org.jclouds.compute.options.RunScriptOptions) */ @Override public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, String runScript, RunScriptOptions options) throws RunScriptOnNodesException { return computeService.runScriptOnNodesMatching(filter, runScript, options); }
/** * @see org.jclouds.compute.ComputeService#runScriptOnNodesMatching(com.google.common.base.Predicate, org.jclouds.scriptbuilder.domain.Statement, org.jclouds.compute.options.RunScriptOptions) */ @Override public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<NodeMetadata> filter, String runScript, RunScriptOptions options) throws RunScriptOnNodesException { return computeService.runScriptOnNodesMatching(filter, runScript, options); }
@Override public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, String runScript) throws RunScriptOnNodesException { return delegate.runScriptOnNodesMatching(filter, runScript); }
@Override public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, Statement runScript) throws RunScriptOnNodesException { return delegate.runScriptOnNodesMatching(filter, runScript); }
@Override public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, Statement runScript, RunScriptOptions options) throws RunScriptOnNodesException { return delegate.runScriptOnNodesMatching(filter, runScript, options); }
@Override public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(Predicate<? super NodeMetadata> filter, String runScript, RunScriptOptions options) throws RunScriptOnNodesException { return delegate.runScriptOnNodesMatching(filter, runScript, options); }
/** * @throws RunScriptOnNodesException * @throws IllegalStateException If do not find exactly one matching node */ public static ExecResponse runScriptOnNode(ComputeService computeService, NodeMetadata node, Statement statement, String scriptName) throws RunScriptOnNodesException { // TODO Includes workaround for NodeMetadata's equals/hashcode method being wrong. Map<? extends NodeMetadata, ExecResponse> scriptResults = computeService.runScriptOnNodesMatching( JcloudsUtil.predicateMatchingById(node), statement, new RunScriptOptions().nameTask(scriptName)); if (scriptResults.isEmpty()) { throw new IllegalStateException("No matching node found when executing script "+scriptName+": expected="+node); } else if (scriptResults.size() > 1) { throw new IllegalStateException("Multiple nodes matched predicate: id="+node.getId()+"; expected="+node+"; actual="+scriptResults.keySet()); } else { return Iterables.getOnlyElement(scriptResults.values()); } }
@SuppressWarnings("unchecked") public Map<NodeMetadata, String> stdoutFromCommandOnGroup(String command, String group) { try { return transformValues((Map<NodeMetadata, ExecResponse>) compute.runScriptOnNodesMatching( runningInGroup(group), command, asCurrentUser().wrapInInitScript(false)), getStdout()); } catch (RunScriptOnNodesException e) { throw propagate(e); } }
public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(final ClusterSpec spec, Predicate<NodeMetadata> condition, final Statement statement) throws IOException, RunScriptOnNodesException { ComputeServiceContext computeServiceContext = getCompute().apply(spec); ComputeService computeService = computeServiceContext.getComputeService(); Cluster cluster = getClusterStateStore(spec).load(); RunScriptOptions options = RunScriptOptions.Builder.runAsRoot(false).wrapInInitScript(false); return computeService.runScriptOnNodesMatching(Predicates.<NodeMetadata>and(condition, runningIn(cluster)), statement, options); }
@Test(enabled = true, expectedExceptions = NoSuchElementException.class) public void testCorrectExceptionRunningNodesNotFound() throws Exception { client.runScriptOnNodesMatching(runningInGroup("zebras-are-awesome"), InstallJDK.fromOpenJDK()); }
public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching(final ClusterSpec spec, Predicate<NodeMetadata> condition, final Statement statement) throws IOException, RunScriptOnNodesException { ComputeServiceContext computeServiceContext = getCompute().apply(spec); ComputeService computeService = computeServiceContext.getComputeService(); Cluster cluster = getClusterStateStore(spec).load(); RunScriptOptions options = RunScriptOptions.Builder.runAsRoot(false).wrapInInitScript(false); return computeService.runScriptOnNodesMatching(Predicates.<NodeMetadata>and(condition, runningIn(cluster)), statement, options); }
@Test(enabled = true, expectedExceptions = NoSuchElementException.class) public void testCorrectExceptionRunningNodesNotFound() throws Exception { client.runScriptOnNodesMatching(runningInGroup("zebras-are-awesome"), InstallJDK.fromOpenJDK()); }
public void testCanRunCommandAsCurrentUser() throws Exception { Map<? extends NodeMetadata, ExecResponse> responses = context.getComputeService().runScriptOnNodesMatching( Predicates.<NodeMetadata> alwaysTrue(), exec("id"), wrapInInitScript(false).runAsRoot(false)); for (Entry<? extends NodeMetadata, ExecResponse> response : responses.entrySet()) assert response.getValue().getOutput().trim().contains(System.getProperty("user.name")) : response.getKey() + ": " + response.getValue(); }
public Map<? extends NodeMetadata, ExecResponse> runScriptOnNodesMatching( ClusterSpec spec, Predicate<NodeMetadata> condition, Statement statement, RunScriptOptions options) throws IOException, RunScriptOnNodesException { LoginCredentials credentials = LoginCredentials.builder() .user(spec.getClusterUser()).privateKey(spec.getPrivateKey()).build(); if (options == null) { options = defaultRunScriptOptionsForSpec(spec); } else if (options.getLoginUser() == null) { options = options.overrideLoginCredentials(credentials); } condition = Predicates .and(runningInGroup(spec.getClusterName()), condition); ComputeServiceContext context = getCompute().apply(spec); return context.getComputeService().runScriptOnNodesMatching(condition, statement, options); }
protected Map<? extends NodeMetadata, ExecResponse> runScriptWithCreds(final String group, OperatingSystem os, LoginCredentials creds) throws RunScriptOnNodesException { return client.runScriptOnNodesMatching(runningInGroup(group), InstallJDK.fromOpenJDK(), overrideLoginCredentials(creds).nameTask("runScriptWithCreds")); }
protected Map<? extends NodeMetadata, ExecResponse> runScriptWithCreds(final String group, OperatingSystem os, LoginCredentials creds) throws RunScriptOnNodesException { return client.runScriptOnNodesMatching(runningInGroup(group), InstallJDK.fromOpenJDK(), overrideLoginCredentials(creds).nameTask("runScriptWithCreds")); }