public int execScript(Map<String,?> props, String summaryForLogging, List<String> commands, Map<String,?> env) { return execWithLogging(props, summaryForLogging, commands, env, new ExecRunner() { @Override public int exec(ShellTool ssh, Map<String, ?> flags, List<String> cmds, Map<String, ?> env) { return ssh.execScript(flags, cmds, env); }}); }
@SuppressWarnings("resource") public int execWithLogging(Map<String,?> props, final String summaryForLogging, final List<String> commands, final Map<String,?> env, final ExecRunner execCommand) { if (commandLogger!=null && commandLogger.isDebugEnabled()) { commandLogger.debug("{}, initiating "+shortName.toLowerCase()+" on machine {}{}: {}", new Object[] {summaryForLogging, getTargetName(), env!=null && !env.isEmpty() ? " (env "+env+")": "", Strings.join(commands, " ; ")}); commandLogger.debug("{}, on machine {}, ending: no commands to run", summaryForLogging, getTargetName()); return 0; StreamGobbler gO=null, gE=null; try { preExecChecks(); if (logPrefix==null) logPrefix = constructDefaultLoggingPrefix(execFlags); return execWithTool(MutableMap.copyOf(toolFlags.getAllConfig()), new Function<ShellTool, Integer>() { public Integer apply(ShellTool tool) { int result = execCommand.exec(tool, MutableMap.copyOf(execFlags.getAllConfig()), commands, env); commandLogger.debug("{}, on machine {}, failed: {}", new Object[] {summaryForLogging, getTargetName(), e}); throw Throwables.propagate(e); } finally {
public int execCommands(Map<String,?> props, String summaryForLogging, List<String> commands, Map<String,?> env) { return newExecWithLoggingHelpers().execCommands(props, summaryForLogging, commands, env); }
public int execScript(Map<String,?> props, String summaryForLogging, List<String> commands, Map<String,?> env) { return newExecWithLoggingHelpers().execScript(props, summaryForLogging, commands, env); }
public Integer apply(ShellTool tool) { int result = execCommand.exec(tool, MutableMap.copyOf(execFlags.getAllConfig()), commands, env); if (commandLogger!=null && commandLogger.isDebugEnabled()) commandLogger.debug("{}, on machine {}, completed: return status {}", new Object[] {summaryForLogging, getTargetName(), result}); return result; }});
public int execCommands(Map<String,?> props, String summaryForLogging, List<String> commands, Map<String,?> env) { return execWithLogging(props, summaryForLogging, commands, env, new ExecRunner() { @Override public int exec(ShellTool tool, Map<String,?> flags, List<String> cmds, Map<String,?> env) { return tool.execCommands(flags, cmds, env); }}); }
protected int execWithLogging(Map<String,?> props, String summaryForLogging, List<String> commands, Map env, final Closure<Integer> execCommand) { return newExecWithLoggingHelpers().execWithLogging(props, summaryForLogging, commands, env, new ExecRunner() { @Override public int exec(ShellTool ssh, Map<String, ?> flags, List<String> cmds, Map<String, ?> env) { return execCommand.call(ssh, flags, cmds, env); }}); }