package org.ovirt.engine.core.bll; import java.util.ArrayList; import java.util.List; import org.ovirt.engine.core.common.businessentities.LUN_storage_server_connection_map; import org.ovirt.engine.core.common.businessentities.LUNs; import org.ovirt.engine.core.common.businessentities.storage_server_connections; import org.ovirt.engine.core.common.queries.GetLunsByVgIdParameters; import org.ovirt.engine.core.dal.dbbroker.DbFacade; /** * A query for retrieving the LUNs composing a storage domain. */ public class GetLunsByVgIdQuery<P extends GetLunsByVgIdParameters> extends QueriesCommandBase<P> { public GetLunsByVgIdQuery(P parameters) { super(parameters); } @Override protected void executeQueryCommand() { List<LUNs> luns = getLunsForVgId(getVgId()); for (LUNs lun : luns) { for (LUN_storage_server_connection_map map : getLunsMap(lun.getLUN_id())) { addConnection(lun, getConnection(map.getstorage_server_connection())); } } setReturnValue(luns); } protected DbFacade getDb() { return DbFacade.getInstance(); } protected void setReturnValue(List<LUNs> luns) { getQueryReturnValue().setReturnValue(luns); } protected String getVgId() { return getParameters().getVgId(); } protected List<LUNs> getLunsForVgId(String vgId) { return getDb().getLunDAO().getAllForVolumeGroup(getVgId()); } protected List<LUN_storage_server_connection_map> getLunsMap(String lunId) { return getDb().getStorageServerConnectionLunMapDAO().getAll(lunId); } protected storage_server_connections getConnection(String cnxId) { return getDb().getStorageServerConnectionDAO().get(cnxId); } protected void addConnection(LUNs lun, storage_server_connections cnx) { if (lun.getLunConnections() == null) { lun.setLunConnections(new ArrayList<storage_server_connections>()); } lun.getLunConnections().add(cnx); } }