package org.ovirt.engine.ui.frontend.server.dashboard.dao; import javax.sql.DataSource; import org.ovirt.engine.ui.frontend.server.dashboard.DashboardDataException; import org.ovirt.engine.ui.frontend.server.dashboard.InventoryStatus; import org.ovirt.engine.ui.frontend.server.dashboard.maps.StorageStatusMap; public class StorageDomainEngineDao extends BaseDao { private static final String STATUS = "status"; //$NON-NLS-1$ private static final String STORAGE_INVENTORY = "storage.inventory"; //$NON-NLS-1$ public StorageDomainEngineDao(DataSource engineDataSource) throws DashboardDataException { super(engineDataSource, "StorageDomainEngineDAO.properties", StorageDomainEngineDao.class); //$NON-NLS-1$ } public InventoryStatus getStorageInventoryStatus() throws DashboardDataException { final InventoryStatus result = new InventoryStatus(); runQuery(STORAGE_INVENTORY, rs -> processStorageStatus(result, rs.getInt(STATUS))); return result; } private InventoryStatus processStorageStatus(InventoryStatus summary, int status) { summary.addCount(); if (StorageStatusMap.WARNING.isType(status)) { summary.addStatus(StorageStatusMap.WARNING.name().toLowerCase()); } else if (StorageStatusMap.DOWN.isType(status)) { summary.addStatus(StorageStatusMap.DOWN.name().toLowerCase()); } else { summary.addStatus(StorageStatusMap.UP.name().toLowerCase()); } return summary; } }