private static String doRun(String cmdstr, String baseDir, boolean withRoot, boolean isVerbose) { ShellRunner runner = new ShellRunner(); runner.command = cmdstr; runner.baseDir = baseDir; runner.verbose = isVerbose; runner.withSudo = withRoot; ShellResult ret = runner.run(); ret.raiseExceptionIfFail(); StringBuilder sb = new StringBuilder(String.format("exec shell: %s\n", cmdstr)); // if isVerbose is set, there is nothing to read as stream has been closed if (!isVerbose) { sb.append(String.format("stdout: %s\n", ret.getStdout())); sb.append(String.format("stderr: %s\n", ret.getStderr())); } return sb.toString(); }
ShellResult res = ShellUtils.runAndReturn(cmd); if ("".equals(res.getStdout()) || res.isReturnCode(2)) { sb = new StringBuilder(String.format("\nfailed to apply salt state[minion id:%s, state name:%s]", minionId, stateName)); sb.append(String.format("\ncommand: %s", cmd)); sb.append(String.format("\nno json output from the command, it's probably caused by the minion hasn't connected to master, will retry", res.getStdout())); logger.debug(sb.toString()); return false; HashMap output = JSONObjectUtil.toObject(res.getStdout(), HashMap.class); for (Object val : output.values()) { if (val instanceof List) { sb = new StringBuilder(String.format("\nfailed to apply salt state[minion id:%s, state name:%s]", minionId, stateName)); sb.append(String.format("\ncommand: %s", cmd)); sb.append(String.format("\n%s", res.getStdout())); throw new SaltException(sb.toString()); sb = new StringBuilder(String.format("\nfailed to apply salt state[minion id:%s, state name:%s]", minionId, stateName)); sb.append(String.format("\ncommand: %s", cmd)); sb.append(String.format("\n%s", res.getStdout())); throw new SaltException(sb.toString());
protected int run(String cmd, boolean sudo, Object...args) { if (args != null) { cmd = String.format(cmd, args); } lastCommand = cmd; ShellResult res = ShellUtils.runAndReturn(cmd, sudo); lastReturnCode = res.getRetCode(); lastStdout = res.getStdout(); lastStderr = res.getStderr(); if (SET_E) { errorOnFailure(); } return lastReturnCode; }
public int run(String cmd, Object...args) { if (args != null) { cmd = String.format(cmd, args); } lastCommand = cmd; ShellResult res = ShellUtils.runAndReturn(cmd, path, useSudo); lastReturnCode = res.getRetCode(); lastStdout = res.getStdout(); lastStderr = res.getStderr(); if (SET_E) { errorOnFailure(); } return lastReturnCode; } }
if (!srcRes.isReturnCode(0)) { throw new OperationFailureException(operr("cannot check md5sum of files in the folder[%s].\nstdout:%s\nstderr:%s", srcFolder, srcRes.getStdout(), srcRes.getStderr())); Map<String, String> dstMd5sum = new HashMap<String, String>(); for (String s : srcRes.getStdout().split("\n")) { if (StringUtils.isBlank(s)) { continue;
sret.setReturnCode(ret.getRetCode()); sret.setStderr(ret.getStderr()); sret.setStdout(ret.getStdout()); if (sret.getReturnCode() == 255 && privateKeyFile != null) { sret.setSshFailure(true);
ShellResult sret = ShellUtils.runAndReturn(String.format("md5sum %s", sourceFilePath)); sret.raiseExceptionIfFail(); String srcMd5 = sret.getStdout().split(" ")[0]; if (!destMd5.equals(srcMd5)) { logger.debug(String.format("file MD5 changed, src[%s, md5:%s] dest[%s, md5, %s]", sourceFilePath,
sret.setReturnCode(ret.getRetCode()); sret.setStderr(ret.getStderr()); sret.setStdout(ret.getStdout()); if (sret.getReturnCode() == 255 && privateKeyFile != null) { sret.setSshFailure(true);