package io.cattle.platform.core.dao;
import io.cattle.platform.core.model.Host;
import io.cattle.platform.core.model.StoragePool;
import io.cattle.platform.core.model.StoragePoolHostMap;
import io.github.ibuildthecloud.gdapi.id.IdFormatter;
import java.util.List;
import java.util.Map;
public interface StoragePoolDao {
List<? extends StoragePool> findBadPools(int limit);
List<? extends StoragePoolHostMap> findBadPoolMapss(int limit);
List<? extends StoragePool> findExternalActivePools();
StoragePool mapNewPool(Host host, Map<String, Object> properties);
StoragePool mapNewPool(Long hostId, Map<String, Object> properties);
List<? extends StoragePool> findStoragePoolByDriverName(Long accountId, String driverName);
Map<Long, Long> findStoragePoolHostsByDriver(Long accountId, Long storageDriverId);
List<? extends StoragePool> findNonRemovedStoragePoolByDriver(Long storageDriverId);
List<? extends StoragePoolHostMap> findMapsToRemove(Long id);
StoragePoolHostMap findNonremovedMap(Long storagePoolId, Long hostId);
void createStoragePoolHostMap(StoragePoolHostMap m);
List<Long> findVolumesInUseByServiceDriver(Long serviceId);
StoragePool associateVolumeToPool(Long volumeId, Long storageDriverId, Long hostId);
Map<Long, List<Object>> findHostsForPools(List<Long> ids, IdFormatter idFormatter);
Map<Long, List<Object>> findVolumesForPools(List<Long> ids, IdFormatter idFormatter);
List<? extends StoragePool> findBadDockerPools(int count);
}