package org.ovirt.engine.core.bll.storage; import org.ovirt.engine.core.bll.Backend; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VdsSpmStatus; import org.ovirt.engine.core.common.businessentities.storage_pool; import org.ovirt.engine.core.common.vdscommands.DisconnectStoragePoolVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.compat.LogCompat; import org.ovirt.engine.core.compat.LogFactoryCompat; public class DisconnectStoragePoolAsyncOperation extends ActivateDeactivateSingleAsyncOperation { public DisconnectStoragePoolAsyncOperation(java.util.ArrayList<VDS> vdss, storage_pool storagePool) { super(vdss, null, storagePool); } @Override public void Execute(int iterationId) { try { if (getVdss().get(iterationId).getspm_status() == VdsSpmStatus.None) { log.infoFormat("Disconnect storage pool treatment vds: {0},pool {1}", getVdss().get(iterationId) .getvds_name(), getStoragePool().getname()); Backend.getInstance() .getResourceManager() .RunVdsCommand( VDSCommandType.DisconnectStoragePool, new DisconnectStoragePoolVDSCommandParameters(getVdss().get(iterationId).getvds_id(), getStoragePool().getId(), getVdss().get(iterationId).getvds_spm_id())); } } catch (RuntimeException e) { log.errorFormat( "Failed to DisconnectStoragePool storagePool. Host {0} from storage pool {1}. Exception: {3}", getVdss().get(iterationId).getvds_name(), getStoragePool().getname(), e); } } private static LogCompat log = LogFactoryCompat.getLog(DisconnectStoragePoolAsyncOperation.class); }