package org.ovirt.engine.core.vdsbroker.irsbroker; import org.ovirt.engine.core.common.vdscommands.DetachStorageDomainVDSCommandParameters; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.vdsbroker.vdsbroker.VDSExceptionBase; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class DetachStorageDomainVDSCommand<P extends DetachStorageDomainVDSCommandParameters> extends IrsBrokerCommand<P> { private static final Logger log = LoggerFactory.getLogger(DetachStorageDomainVDSCommand.class); public DetachStorageDomainVDSCommand(P parameters) { super(parameters); } @Override protected void executeIrsBrokerCommand() { if (getParameters().getForce()) { Guid storagePoolId = getParameters().getStoragePoolId(); if (getParameters().isDetachFromOldStoragePool()) { storagePoolId = Guid.Empty; } status = getIrsProxy().forcedDetachStorageDomain(getParameters().getStorageDomainId().toString(), storagePoolId.toString()); proceedProxyReturnValue(); } else { status = getIrsProxy().detachStorageDomain(getParameters().getStorageDomainId().toString(), getParameters().getStoragePoolId().toString(), getParameters().getMasterStorageDomainId().toString(), getParameters().getMasterVersion()); proceedProxyReturnValue(); } } @Override protected VDSExceptionBase createDefaultConcreteException(String errorMessage) { return new IrsOperationFailedNoFailoverException(errorMessage); } }