diff --git a/utils/src/com/cloud/utils/script/Script.java b/utils/src/com/cloud/utils/script/Script.java index 04ad7c46ba0..b84ff2fe658 100755 --- a/utils/src/com/cloud/utils/script/Script.java +++ b/utils/src/com/cloud/utils/script/Script.java @@ -201,8 +201,8 @@ public class Script implements Callable { if (interpreter != null) { return interpreter.drain() ? task.getResult() : interpreter.interpret(ir); } else { - // null return is ok apparently - return (_process.exitValue() == 0) ? "Ok" : "Failed, exit code " + _process.exitValue(); + // null return exitValue apparently + return String.valueOf(_process.exitValue()); } } else { break; @@ -245,7 +245,7 @@ public class Script implements Callable { error = interpreter.processError(reader); } else { - error = "Non zero exit code : " + _process.exitValue(); + error = String.valueOf(_process.exitValue()); } if (_logger.isDebugEnabled()) { @@ -482,4 +482,26 @@ public class Script implements Callable { return result.trim(); } + public static int runSimpleBashScriptForExitValue(String command) { + return runSimpleBashScriptForExitValue(command, 0); + } + + public static int runSimpleBashScriptForExitValue(String command, int timeout) { + + Script s = new Script("/bin/bash", timeout); + s.add("-c"); + s.add(command); + + String result = s.execute(null); + if (result == null || result.trim().isEmpty()) + return -1; + else { + try { + return Integer.valueOf(result.trim()); + } catch (NumberFormatException e) { + return -1; + } + } + } + }