package org.zstack.kvm; import org.zstack.header.host.HostMessage; import org.zstack.header.message.CarrierMessage; import org.zstack.header.message.NeedReplyMessage; import org.zstack.utils.gson.JSONObjectUtil; import java.util.concurrent.TimeUnit; /** */ public class KVMHostAsyncHttpCallMsg extends NeedReplyMessage implements HostMessage, CarrierMessage { private String path; private String command; private String hostUuid; private boolean noStatusCheck; private long commandTimeout = -1; private String commandClassName; public String getCommandClassName() { return commandClassName; } @Override public long getTimeout() { return getCommandTimeout() + TimeUnit.SECONDS.toMillis(30); } public long getCommandTimeout() { assert commandTimeout != -1 : "commandTimeout is not set"; assert commandTimeout != 0 : "commandTimeout cannot be 0"; return commandTimeout; } public void setCommandTimeout(long commandTimeout) { this.commandTimeout = commandTimeout; timeout = getTimeout(); } public boolean isNoStatusCheck() { return noStatusCheck; } public void setNoStatusCheck(boolean noStatusCheck) { this.noStatusCheck = noStatusCheck; } public String getPath() { return path; } public void setPath(String path) { this.path = path; } public String getCommand() { return command; } public void setCommand(Object command) { this.command = JSONObjectUtil.toJsonString(command); commandClassName = command.getClass().getName(); } @Override public String getHostUuid() { return hostUuid; } public void setHostUuid(String hostUuid) { this.hostUuid = hostUuid; } }