package org.ovirt.engine.core.vdsbroker.irsbroker;
import org.ovirt.engine.core.common.vdscommands.GetVolumeInfoVDSCommandParameters;
import org.ovirt.engine.core.common.vdscommands.SPMGetVolumeInfoVDSCommandParameters;
import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
import org.ovirt.engine.core.vdsbroker.vdsbroker.VDSExceptionBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SPMGetVolumeInfoVDSCommand<P extends SPMGetVolumeInfoVDSCommandParameters> extends IrsBrokerCommand<P> {
private static final Logger log = LoggerFactory.getLogger(SPMGetVolumeInfoVDSCommand.class);
public SPMGetVolumeInfoVDSCommand(P parameters) {
super(parameters);
}
@Override
protected void executeIrsBrokerCommand() {
log.info("Executing GetVolumeInfo using the current SPM");
GetVolumeInfoVDSCommandParameters params = new GetVolumeInfoVDSCommandParameters(
getCurrentIrsProxy().getCurrentVdsId(),
getParameters().getStoragePoolId(),
getParameters().getStorageDomainId(),
getParameters().getImageGroupId(),
getParameters().getImageId());
params.setExpectedEngineErrors(getParameters().getExpectedEngineErrors());
setVDSReturnValue(resourceManager.runVdsCommand(VDSCommandType.GetVolumeInfo, params));
}
@Override
protected VDSExceptionBase createDefaultConcreteException(String errorMessage) {
return new IrsOperationFailedNoFailoverException(errorMessage);
}
}