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.KdumpFlowStatus;
import org.ovirt.engine.core.common.businessentities.VdsKdumpStatus;
import org.ovirt.engine.core.compat.Guid;
import org.springframework.jdbc.core.RowMapper;
@Named
@Singleton
public class VdsKdumpStatusDaoImpl extends BaseDao implements VdsKdumpStatusDao {
private static RowMapper<VdsKdumpStatus> vdsKdumpStatusMapper = (rs, rowNum) -> {
VdsKdumpStatus entity = new VdsKdumpStatus();
entity.setVdsId(Guid.createGuidFromStringDefaultEmpty(rs.getString("vds_id")));
entity.setStatus(KdumpFlowStatus.forString(rs.getString("status")));
entity.setAddress(rs.getString("address"));
return entity;
};
@Override
public void update(VdsKdumpStatus vdsKdumpStatus){
getCallsHandler().executeModification(
"UpsertKdumpStatus",
getCustomMapSqlParameterSource()
.addValue("vds_id", vdsKdumpStatus.getVdsId())
.addValue("status", vdsKdumpStatus.getStatus().getAsString())
.addValue("address", vdsKdumpStatus.getAddress())
);
}
/**
* Updates kdump status record for specified VDS
*
* @param ip
* IP address of host to update status for
* @param vdsKdumpStatus
* updated kdump status
*/
public void updateForIp(String ip, VdsKdumpStatus vdsKdumpStatus){
getCallsHandler().executeModification(
"UpsertKdumpStatusForIp",
getCustomMapSqlParameterSource()
.addValue("ip", ip)
.addValue("status", vdsKdumpStatus.getStatus().getAsString())
.addValue("address", vdsKdumpStatus.getAddress())
);
}
@Override
public void remove(Guid vdsId) {
getCallsHandler().executeModification(
"RemoveFinishedKdumpStatusForVds",
getCustomMapSqlParameterSource().addValue("vds_id", vdsId)
);
}
@Override
public VdsKdumpStatus get(Guid vdsId) {
return getCallsHandler().executeRead(
"GetKdumpStatusForVds",
vdsKdumpStatusMapper,
getCustomMapSqlParameterSource().addValue("vds_id", vdsId)
);
}
@Override
public List<VdsKdumpStatus> getAllUnfinishedVdsKdumpStatus(){
return getCallsHandler().executeReadList(
"GetAllUnfinishedVdsKdumpStatus",
vdsKdumpStatusMapper,
getCustomMapSqlParameterSource()
);
}
}