package org.ovirt.engine.core.vdsbroker.irsbroker;
import org.ovirt.engine.core.common.errors.EngineError;
import org.ovirt.engine.core.common.vdscommands.RemoveVMVDSCommandParameters;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.vdsbroker.vdsbroker.VDSExceptionBase;
public class RemoveVMVDSCommand<P extends RemoveVMVDSCommandParameters> extends IrsBrokerCommand<P> {
public RemoveVMVDSCommand(P parameters) {
super(parameters);
}
@Override
protected void executeIrsBrokerCommand() {
if (getParameters().getStorageDomainId().equals(Guid.Empty)) {
status = getIrsProxy().removeVM(getParameters().getStoragePoolId().toString(),
getParameters().getVmGuid().toString());
} else {
status = getIrsProxy()
.removeVM(getParameters().getStoragePoolId().toString(),
getParameters().getVmGuid().toString(),
getParameters().getStorageDomainId().toString());
}
proceedProxyReturnValue();
}
@Override
protected void proceedProxyReturnValue() {
EngineError returnStatus = getReturnValueFromStatus(getReturnStatus());
switch (returnStatus) {
case Done:
return;
default:
VDSExceptionBase outEx = createDefaultConcreteException(getReturnStatus().message);
initializeVdsError(returnStatus);
outEx.setVdsError(getVDSReturnValue().getVdsError());
throw outEx;
}
}
@Override
protected VDSExceptionBase createDefaultConcreteException(String errorMessage) {
return new IrsOperationFailedNoFailoverException(errorMessage);
}
}