package org.ovirt.engine.core.dao; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import org.apache.commons.lang.NotImplementedException; import org.ovirt.engine.core.common.businessentities.BootSequence; import org.ovirt.engine.core.common.businessentities.DisplayType; import org.ovirt.engine.core.common.businessentities.SessionState; import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.businessentities.VmDynamic; import org.ovirt.engine.core.common.businessentities.VmExitStatus; import org.ovirt.engine.core.common.businessentities.VmPauseStatus; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.NGuid; import org.ovirt.engine.core.dal.dbbroker.DbFacadeUtils; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; public class VmDynamicDAODbFacadeImpl extends MassOperationsGenericDaoDbFacade<VmDynamic, Guid> implements VmDynamicDAO { @SuppressWarnings("unchecked") @Override public List<VmDynamic> getAllRunningForVds(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("vds_id", id); ParameterizedRowMapper<VmDynamic> mapper = createEntityRowMapper(); return getCallsHandler().executeReadList("GetVmsDynamicRunningOnVds", mapper, parameterSource); } @Override public void updateStatus(Guid vmGuid, VMStatus status) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("vm_guid", vmGuid) .addValue("status", status); getCallsHandler().executeModification("UpdateVmDynamicStatus", parameterSource); } @Override protected String getProcedureNameForUpdate() { return "UpdateVmDynamic"; } @Override protected String getProcedureNameForGet() { return "GetVmDynamicByVmGuid"; } @Override protected String getProcedureNameForGetAll() { throw new NotImplementedException(); } @Override protected String getProcedureNameForSave() { return "InsertVmDynamic"; } @Override protected String getProcedureNameForRemove() { return "DeleteVmDynamic"; } @Override protected MapSqlParameterSource createIdParameterMapper(Guid id) { return getCustomMapSqlParameterSource().addValue("vm_guid", id); } @Override protected MapSqlParameterSource createFullParametersMapper(VmDynamic vm) { return createIdParameterMapper(vm.getId()) .addValue("app_list", vm.getapp_list()) .addValue("guest_cur_user_id", vm.getguest_cur_user_id()) .addValue("guest_cur_user_name", vm.getguest_cur_user_name()) .addValue("guest_last_login_time", vm.getguest_last_login_time()) .addValue("guest_last_logout_time", vm.getguest_last_logout_time()) .addValue("guest_os", vm.getguest_os()) .addValue("migrating_to_vds", vm.getmigrating_to_vds()) .addValue("run_on_vds", vm.getrun_on_vds()) .addValue("status", vm.getstatus()) .addValue("vm_host", vm.getvm_host()) .addValue("vm_ip", vm.getvm_ip()) .addValue("vm_last_boot_time", vm.getvm_last_boot_time()) .addValue("vm_last_up_time", vm.getvm_last_up_time()) .addValue("vm_pid", vm.getvm_pid()) .addValue("display", vm.getdisplay()) .addValue("acpi_enable", vm.getacpi_enable()) .addValue("session", vm.getsession()) .addValue("display_ip", vm.getdisplay_ip()) .addValue("display_type", vm.getdisplay_type()) .addValue("kvm_enable", vm.getkvm_enable()) .addValue("boot_sequence", vm.getboot_sequence()) .addValue("display_secure_port", vm.getdisplay_secure_port()) .addValue("utc_diff", vm.getutc_diff()) .addValue("last_vds_run_on", vm.getlast_vds_run_on()) .addValue("client_ip", vm.getclient_ip()) .addValue("guest_requested_memory", vm.getguest_requested_memory()) .addValue("hibernation_vol_handle", vm.gethibernation_vol_handle()) .addValue("exit_status", vm.getExitStatus().getValue()) .addValue("pause_status", vm.getPauseStatus().getValue()) .addValue("exit_message", vm.getExitMessage()); } @Override protected ParameterizedRowMapper<VmDynamic> createEntityRowMapper() { return new ParameterizedRowMapper<VmDynamic>() { @Override public VmDynamic mapRow(ResultSet rs, int rowNum) throws SQLException { VmDynamic entity = new VmDynamic(); entity.setapp_list(rs.getString("app_list")); entity.setguest_cur_user_id(NGuid.createGuidFromString(rs .getString("guest_cur_user_id"))); entity.setguest_cur_user_name(rs .getString("guest_cur_user_name")); entity.setguest_last_login_time(DbFacadeUtils.fromDate(rs .getTimestamp("guest_last_login_time"))); entity.setguest_last_logout_time(DbFacadeUtils.fromDate(rs .getTimestamp("guest_last_logout_time"))); entity.setguest_os(rs.getString("guest_os")); entity.setmigrating_to_vds(NGuid.createGuidFromString(rs .getString("migrating_to_vds"))); entity.setrun_on_vds(NGuid.createGuidFromString(rs .getString("run_on_vds"))); entity.setstatus(VMStatus.forValue(rs.getInt("status"))); entity.setId(Guid.createGuidFromString(rs .getString("vm_guid"))); entity.setvm_host(rs.getString("vm_host")); entity.setvm_ip(rs.getString("vm_ip")); entity.setvm_last_boot_time(DbFacadeUtils.fromDate(rs .getTimestamp("vm_last_boot_time"))); entity.setvm_last_up_time(DbFacadeUtils.fromDate(rs .getTimestamp("vm_last_up_time"))); entity.setvm_pid((Integer) rs.getObject("vm_pid")); entity.setdisplay((Integer) rs.getObject("display")); entity.setacpi_enable((Boolean) rs.getObject("acpi_enable")); entity.setsession(SessionState.forValue(rs.getInt("session"))); entity.setdisplay_ip(rs.getString("display_ip")); entity.setdisplay_type(DisplayType.forValue(rs .getInt("display_type"))); entity.setkvm_enable((Boolean) rs.getObject("kvm_enable")); entity.setboot_sequence(BootSequence.forValue(rs .getInt("boot_sequence"))); entity.setdisplay_secure_port((Integer) rs .getObject("display_secure_port")); entity.setutc_diff((Integer) rs.getObject("utc_diff")); entity.setlast_vds_run_on(NGuid.createGuidFromString(rs .getString("last_vds_run_on"))); entity.setclient_ip(rs.getString("client_ip")); entity.setguest_requested_memory((Integer) rs .getObject("guest_requested_memory")); entity.sethibernation_vol_handle(rs .getString("hibernation_vol_handle")); VmExitStatus exitStatus = VmExitStatus.forValue(rs .getInt("exit_status")); VmPauseStatus pauseStatus = VmPauseStatus.forValue(rs .getInt("pause_status")); entity.setExitMessage(rs.getString("exit_message")); entity.setExitStatus(exitStatus); entity.setPauseStatus(pauseStatus); return entity; } }; } }