package org.ovirt.engine.core.dao; import java.util.List; import javax.inject.Named; import javax.inject.Singleton; import org.ovirt.engine.core.common.businessentities.IscsiBond; import org.ovirt.engine.core.compat.Guid; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.SingleColumnRowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; @Named @Singleton public class IscsiBondDaoImpl extends DefaultGenericDao<IscsiBond, Guid> implements IscsiBondDao { public IscsiBondDaoImpl() { super("IscsiBond"); } @Override public List<IscsiBond> getAllByStoragePoolId(Guid storagePoolId) { return getCallsHandler().executeReadList("GetIscsiBondsByStoragePoolId", iscsiBondRowMapper, getCustomMapSqlParameterSource().addValue("storage_pool_id", storagePoolId)); } @Override public List<Guid> getNetworkIdsByIscsiBondId(Guid iscsiBondId) { return getCallsHandler().executeReadList("GetNetworksByIscsiBondId", createGuidMapper(), getCustomMapSqlParameterSource().addValue("iscsi_bond_id", iscsiBondId)); } @Override public List<IscsiBond> getIscsiBondsByNetworkId(Guid netowrkId) { return getCallsHandler().executeReadList("GetIscsiBondsByNetworkId", iscsiBondRowMapper, getCustomMapSqlParameterSource().addValue("network_id", netowrkId)); } @Override public void addNetworkToIscsiBond(Guid iscsiBondId, Guid networkId) { getCallsHandler().executeModification("AddNetworkToIscsiBond", getCustomMapSqlParameterSource() .addValue("iscsi_bond_id", iscsiBondId) .addValue("network_id", networkId)); } @Override public void removeNetworkFromIscsiBond(Guid iscsiBondId, Guid networkId) { getCallsHandler().executeModification("RemoveNetworkFromIscsiBond", getCustomMapSqlParameterSource() .addValue("iscsi_bond_id", iscsiBondId) .addValue("network_id", networkId)); } @Override public List<String> getStorageConnectionIdsByIscsiBondId(Guid iscsiBondId) { return getCallsHandler().executeReadList("GetConnectionsByIscsiBondId", SingleColumnRowMapper.newInstance(String.class), getCustomMapSqlParameterSource().addValue("iscsi_bond_id", iscsiBondId)); } @Override public void addStorageConnectionToIscsiBond(Guid iscsiBondId, String connectionId) { getCallsHandler().executeModification("AddConnectionToIscsiBond", getCustomMapSqlParameterSource() .addValue("iscsi_bond_id", iscsiBondId) .addValue("connection_id", connectionId)); } @Override public void removeStorageConnectionFromIscsiBond(Guid iscsiBondId, String connectionId) { getCallsHandler().executeModification("RemoveConnectionFromIscsiBond", getCustomMapSqlParameterSource() .addValue("iscsi_bond_id", iscsiBondId) .addValue("connection_id", connectionId)); } @Override protected MapSqlParameterSource createIdParameterMapper(Guid id) { return getCustomMapSqlParameterSource().addValue("id", id); } @Override protected MapSqlParameterSource createFullParametersMapper(IscsiBond iscsiBond) { return createIdParameterMapper(iscsiBond.getId()) .addValue("name", iscsiBond.getName()) .addValue("description", iscsiBond.getDescription()) .addValue("storage_pool_id", iscsiBond.getStoragePoolId()); } @Override protected RowMapper<IscsiBond> createEntityRowMapper() { return iscsiBondRowMapper; } private static final RowMapper<IscsiBond> iscsiBondRowMapper = (rs, rowNum) -> { IscsiBond entity = new IscsiBond(); entity.setId(getGuid(rs, "id")); entity.setDescription(rs.getString("description")); entity.setName(rs.getString("name")); entity.setStoragePoolId(getGuidDefaultNewGuid(rs, "storage_pool_id")); return entity; }; }