package org.ovirt.engine.core.vdsbroker;
import org.ovirt.engine.core.compat.*;
import org.ovirt.engine.core.vdsbroker.vdsbroker.*;
import org.ovirt.engine.core.common.vdscommands.*;
import org.ovirt.engine.core.common.businessentities.*;
public class ResumeVDSCommand<P extends ResumeVDSCommandParameters> extends VdsIdVDSCommandBase<P> {
public ResumeVDSCommand(P parameters) {
super(parameters);
}
@Override
protected void ExecuteVdsIdCommand() {
ResumeVDSCommandParameters parameters = getParameters();
if (_vdsManager != null) {
VMStatus retval = VMStatus.Unknown;
ResumeBrokerVDSCommand<VdsAndVmIDVDSParametersBase> command =
new ResumeBrokerVDSCommand<VdsAndVmIDVDSParametersBase>(parameters);
command.Execute();
if (command.getVDSReturnValue().getSucceeded()) {
retval = VMStatus.PoweringUp;
// get vdsEventListener from callback channel (if wcf-user
// backend) or resource manager
if (ResourceManager.getInstance().getBackendCallback() != null) {
ResourceManager.getInstance().AddAsyncRunningVm(parameters.getVmId(),
ResourceManager.getInstance().getBackendCallback());
}
} else if (command.getVDSReturnValue().getExceptionObject() != null) {
log.errorFormat("VDS::pause Failed resume vm '{0}' in vds = {1} : {2}, error = {3}", parameters
.getVmId(), getVds().getvds_id(), getVds().getvds_name(), command.getVDSReturnValue()
.getExceptionString());
getVDSReturnValue().setSucceeded(false);
getVDSReturnValue().setExceptionString(command.getVDSReturnValue().getExceptionString());
getVDSReturnValue().setExceptionObject(command.getVDSReturnValue().getExceptionObject());
getVDSReturnValue().setVdsError(command.getVDSReturnValue().getVdsError());
}
getVDSReturnValue().setReturnValue(retval);
} else {
getVDSReturnValue().setSucceeded(false);
}
}
private static LogCompat log = LogFactoryCompat.getLog(ResumeVDSCommand.class);
}