package org.zstack.utils;
/**
*/
public class ShellResult {
private int retCode;
private String stderr;
private String stdout;
private String command;
public int getRetCode() {
return retCode;
}
public void setRetCode(int retCode) {
this.retCode = retCode;
}
public String getStderr() {
return stderr;
}
public void setStderr(String stderr) {
this.stderr = stderr;
}
public String getStdout() {
return stdout;
}
public void setStdout(String stdout) {
this.stdout = stdout;
}
public String getExecutionLog() {
StringBuilder sb = new StringBuilder();
sb.append(String.format("\nshell command[%s]", command));
sb.append(String.format("\nret code: %s", retCode));
sb.append(String.format("\nstderr: %s", stderr));
sb.append(String.format("\nstdout: %s", stdout));
return sb.toString();
}
public void raiseExceptionIfFail() {
raiseExceptionIfFail(0);
}
public void raiseExceptionIfFail(int expectedRetCode) {
if (retCode != expectedRetCode) {
StringBuilder sb = new StringBuilder();
sb.append(String.format("\nshell command[%s] failed", command));
sb.append(String.format("\nret code: %s", retCode));
sb.append(String.format("\nstderr: %s", stderr));
sb.append(String.format("\nstdout: %s", stdout));
throw new RuntimeException(sb.toString());
}
}
public String getCommand() {
return command;
}
public void setCommand(String command) {
this.command = command;
}
public boolean isReturnCode(int code) {
return retCode == code;
}
}