package org.ovirt.engine.core.bll.storage.connection; import java.util.List; import java.util.Map; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.ConnectHostToStoragePoolServersParameters; import org.ovirt.engine.core.common.action.HostStoragePoolParametersBase; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.StorageServerConnections; import org.ovirt.engine.core.common.businessentities.storage.LUNs; import org.ovirt.engine.core.common.errors.EngineFault; import org.ovirt.engine.core.common.utils.Pair; import org.ovirt.engine.core.compat.Guid; public interface IStorageHelper { boolean prepareConnectHostToStoragePoolServers(CommandContext cmdContext, ConnectHostToStoragePoolServersParameters parameters, List<StorageServerConnections> connections); void prepareDisconnectHostFromStoragePoolServers(HostStoragePoolParametersBase parameters, List<StorageServerConnections> connections); Pair<Boolean, AuditLogType> disconnectHostFromStoragePoolServersCommandCompleted(HostStoragePoolParametersBase parameters); boolean connectStorageToDomainByVdsId(StorageDomain storageDomain, Guid vdsId); Pair<Boolean, EngineFault> connectStorageToDomainByVdsIdDetails(StorageDomain storageDomain, Guid vdsId); boolean disconnectStorageFromDomainByVdsId(StorageDomain storageDomain, Guid vdsId); boolean connectStorageToLunByVdsId(StorageDomain storageDomain, Guid vdsId, LUNs lun, Guid storagePoolId); boolean disconnectStorageFromLunByVdsId(StorageDomain storageDomain, Guid vdsId, LUNs lun); boolean storageDomainRemoved(StorageDomainStatic storageDomain); /** * This method is called when a lun is no longer a part of a Storage Domain. If the lun is used by a disk its volume * group id field will be cleared, otherwise the lun will be deleted. * If the lun connection isn't used by other luns, it'll be removed as well. */ void removeLunFromStorageDomain(String lunId); void removeLun(LUNs lun); boolean isConnectSucceeded(Map<String, String> returnValue, List<StorageServerConnections> connections); boolean syncDomainInfo(StorageDomain storageDomain, Guid vdsId); }