package org.ovirt.engine.core.dao.gluster;
import java.util.List;
import javax.inject.Named;
import javax.inject.Singleton;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSnapshotConfig;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dao.BaseDao;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
@Named
@Singleton
public class GlusterVolumeSnapshotConfigDaoImpl extends BaseDao implements GlusterVolumeSnapshotConfigDao {
private static final RowMapper<GlusterVolumeSnapshotConfig> snapshotConfigRowMapper = (rs, rowNum) -> {
GlusterVolumeSnapshotConfig config = new GlusterVolumeSnapshotConfig();
config.setClusterId(getGuidDefaultEmpty(rs, "cluster_id"));
config.setVolumeId(getGuidDefaultEmpty(rs, "volume_id"));
config.setParamName(rs.getString("param_name"));
config.setParamValue(rs.getString("param_value"));
return config;
};
public void save(GlusterVolumeSnapshotConfig config) {
getCallsHandler().executeModification("InsertGlusterVolumeSnapshotConfig", createFullParametersMapper(config));
}
public List<GlusterVolumeSnapshotConfig> getConfigByClusterId(Guid clusterId) {
return getCallsHandler().executeReadList("GetGlusterVolumeSnapshotConfigByClusterId", snapshotConfigRowMapper,
getCustomMapSqlParameterSource()
.addValue("cluster_id", clusterId));
}
public List<GlusterVolumeSnapshotConfig> getConfigByVolumeId(Guid clusterId, Guid volumeId) {
return getCallsHandler().executeReadList("GetGlusterVolumeSnapshotConfigByVolumeId", snapshotConfigRowMapper,
getCustomMapSqlParameterSource()
.addValue("cluster_id", clusterId)
.addValue("volume_id", volumeId));
}
public GlusterVolumeSnapshotConfig getConfigByClusterIdAndName(Guid clusterId,
String paramName) {
return getCallsHandler().executeRead("GetGlusterVolumeSnapshotConfigByClusterIdAndName",
snapshotConfigRowMapper,
getCustomMapSqlParameterSource()
.addValue("cluster_id", clusterId)
.addValue("param_name", paramName));
}
public GlusterVolumeSnapshotConfig getConfigByVolumeIdAndName(Guid clusterId,
Guid volumeId,
String paramName) {
return getCallsHandler().executeRead("GetGlusterVolumeSnapshotConfigByVolumeIdAndName",
snapshotConfigRowMapper,
getCustomMapSqlParameterSource()
.addValue("cluster_id", clusterId)
.addValue("volume_id", volumeId)
.addValue("param_name", paramName));
}
protected MapSqlParameterSource createFullParametersMapper(GlusterVolumeSnapshotConfig config) {
return getCustomMapSqlParameterSource()
.addValue("cluster_id", config.getClusterId())
.addValue("volume_id", config.getVolumeId())
.addValue("param_name", config.getParamName())
.addValue("param_value", config.getParamValue());
}
@Override
public List<GlusterVolumeSnapshotConfig> getAllWithQuery(String query) {
return getJdbcTemplate().query(query, snapshotConfigRowMapper);
}
@Override
public void updateConfigByClusterIdAndName(Guid clusterId, String paramName, String paramValue) {
getCallsHandler().executeModification("UpdateConfigByClusterIdAndName",
getCustomMapSqlParameterSource()
.addValue("cluster_id", clusterId)
.addValue("param_name", paramName)
.addValue("param_value", paramValue));
}
@Override
public void updateConfigByVolumeIdAndName(Guid clusterId, Guid volumeId, String paramName, String paramValue) {
getCallsHandler().executeModification("UpdateConfigByVolumeIdIdAndName",
getCustomMapSqlParameterSource()
.addValue("cluster_id", clusterId)
.addValue("volume_id", volumeId)
.addValue("param_name", paramName)
.addValue("param_value", paramValue));
}
}