package org.ovirt.engine.core.bll.storage.domain; import org.ovirt.engine.core.bll.InternalCommandAttribute; import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.bll.storage.StorageJobCommand; import org.ovirt.engine.core.bll.storage.utils.VdsCommandsHelper; import org.ovirt.engine.core.common.action.ReduceStorageDomainCommandParameters; import org.ovirt.engine.core.common.businessentities.HostJobInfo.HostJobStatus; import org.ovirt.engine.core.common.errors.EngineError; import org.ovirt.engine.core.common.vdscommands.ReduceStorageDomainVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; @InternalCommandAttribute @NonTransactiveCommandAttribute public class ReduceStorageDomainCommand<T extends ReduceStorageDomainCommandParameters> extends StorageJobCommand<T> { public ReduceStorageDomainCommand(T parameters, CommandContext cmdContext) { super(parameters, cmdContext); } @Override protected void executeCommand() { ReduceStorageDomainVDSCommandParameters p = new ReduceStorageDomainVDSCommandParameters(getParameters().getStorageJobId(), getParameters().getStorageDomainId(), getParameters().getDeviceId()); p.setVdsId(getParameters().getVdsRunningOn()); VdsCommandsHelper.runVdsCommandWithoutFailover(VDSCommandType.ReduceStorageDomain, p, getParameters().getStoragePoolId(), this); setSucceeded(true); } @Override public HostJobStatus handleJobError(EngineError error) { if (error == EngineError.NoSuchPhysicalVolume) { return HostJobStatus.done; } return HostJobStatus.failed; } }