package org.ovirt.engine.core.vdsbroker.vdsbroker;
import org.ovirt.engine.core.common.vdscommands.GetDiskAlignmentVDSCommandParameters;
public class GetDiskAlignmentVDSCommand<P extends GetDiskAlignmentVDSCommandParameters> extends VdsBrokerCommand<P> {
private AlignmentScanReturn diskAlignment;
public GetDiskAlignmentVDSCommand(P parameters) {
super(parameters);
}
@Override
protected void executeVdsBrokerCommand() {
log.info("-- GetDiskAlignmentVDSCommand::executeVdsBrokerCommand: calling 'getDiskAlignment', parameters:");
log.info("++ vmId={}", getParameters().getVmId());
log.info("++ driveSpecs={}", getParameters().getDriveSpecs());
diskAlignment = getBroker().getDiskAlignment(getParameters().getVmId().toString(), getParameters().getDriveSpecs());
proceedProxyReturnValue();
// At the moment we only check that all the partition are aligned.
// In the future we might want to keep a list of the unaligned ones.
setReturnValue(!diskAlignment.getAlignment().values().contains(false));
}
@Override
protected Status getReturnStatus() {
return diskAlignment.getStatus();
}
}