package org.ovirt.engine.core.dao;
import javax.inject.Named;
import javax.inject.Singleton;
import org.ovirt.engine.core.common.businessentities.EngineBackupLog;
import org.ovirt.engine.core.dal.dbbroker.DbFacadeUtils;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
@Named
@Singleton
public class EngineBackupLogDaoImpl extends BaseDao implements EngineBackupLogDao {
private static final RowMapper<EngineBackupLog> engineBackupLogRowMapper = (rs, numRow) -> {
EngineBackupLog entity = new EngineBackupLog();
entity.setScope(rs.getString("scope"));
entity.setDoneAt(DbFacadeUtils.fromDate(rs.getTimestamp("done_at")));
entity.setPassed(rs.getBoolean("is_passed"));
entity.setFqdn(rs.getString("fqdn"));
entity.setOutputMessage(rs.getString("output_message"));
entity.setLogPath(rs.getString("log_path"));
return entity;
};
@Override
public EngineBackupLog getLastSuccessfulEngineBackup(String scope) {
return getCallsHandler().executeRead("GetLastSuccessfulEngineBackup", engineBackupLogRowMapper,
getCustomMapSqlParameterSource().addValue("scope", scope));
}
@Override
public void save(EngineBackupLog engineBackupLog) {
MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource()
.addValue("scope", engineBackupLog.getScope())
.addValue("done_at", engineBackupLog.getDoneAt())
.addValue("status", engineBackupLog.isPassed() ? 1 : -1)
.addValue("fqdn", engineBackupLog.getFqdn())
.addValue("output_message", engineBackupLog.getOutputMessage())
.addValue("log_path", engineBackupLog.getLogPath());
getCallsHandler().executeModification("LogEngineBackupEvent", parameterSource);
}
}