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.HypervisorType; import org.ovirt.engine.core.common.businessentities.NonOperationalReason; import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.businessentities.VdsDynamic; import org.ovirt.engine.core.common.businessentities.VdsTransparentHugePagesState; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacadeUtils; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; /** * <code>VdsDAODbFacadeImpl</code> provides an implementation of {@link VdsDAO} that uses previously written code from * {@link org.ovirt.engine.core.dal.dbbroker.DbFacade}. * * */ public class VdsDynamicDAODbFacadeImpl extends BaseDAODbFacade implements VdsDynamicDAO { @Override public VdsDynamic get(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("vds_id", id); ParameterizedRowMapper<VdsDynamic> mapper = new ParameterizedRowMapper<VdsDynamic>() { @Override public VdsDynamic mapRow(ResultSet rs, int rowNum) throws SQLException { VdsDynamic entity = new VdsDynamic(); entity.setcpu_cores((Integer) rs.getObject("cpu_cores")); entity.setcpu_model(rs.getString("cpu_model")); entity.setcpu_speed_mh(rs.getDouble("cpu_speed_mh")); entity.setif_total_speed(rs.getString("if_total_speed")); entity.setkvm_enabled((Boolean) rs.getObject("kvm_enabled")); entity.setmem_commited((Integer) rs.getObject("mem_commited")); entity.setphysical_mem_mb((Integer) rs .getObject("physical_mem_mb")); entity.setstatus(VDSStatus.forValue(rs.getInt("status"))); entity.setId(Guid.createGuidFromString(rs .getString("vds_id"))); entity.setvm_active((Integer) rs.getObject("vm_active")); entity.setvm_count((Integer) rs.getObject("vm_count")); entity.setvms_cores_count((Integer) rs .getObject("vms_cores_count")); entity.setvm_migrating((Integer) rs.getObject("vm_migrating")); entity.setreserved_mem((Integer) rs.getObject("reserved_mem")); entity.setguest_overhead((Integer) rs .getObject("guest_overhead")); entity.setsoftware_version(rs.getString("software_version")); entity.setversion_name(rs.getString("version_name")); entity.setbuild_name(rs.getString("build_name")); entity.setprevious_status(VDSStatus.forValue(rs .getInt("previous_status"))); entity.setcpu_flags(rs.getString("cpu_flags")); entity.setcpu_over_commit_time_stamp(DbFacadeUtils.fromDate(rs .getTimestamp("cpu_over_commit_time_stamp"))); entity.sethypervisor_type(HypervisorType.forValue(rs .getInt("hypervisor_type"))); entity.setpending_vcpus_count((Integer) rs .getObject("pending_vcpus_count")); entity.setpending_vmem_size(rs.getInt("pending_vmem_size")); entity.setcpu_sockets((Integer) rs.getObject("cpu_sockets")); entity.setnet_config_dirty((Boolean) rs .getObject("net_config_dirty")); entity.setsupported_cluster_levels(rs .getString("supported_cluster_levels")); entity.setsupported_engines(rs.getString("supported_engines")); entity.sethost_os(rs.getString("host_os")); entity.setkvm_version(rs.getString("kvm_version")); entity.setspice_version(rs.getString("spice_version")); entity.setkernel_version(rs.getString("kernel_version")); entity.setIScsiInitiatorName(rs .getString("iscsi_initiator_name")); entity.setTransparentHugePagesState(VdsTransparentHugePagesState .forValue(rs.getInt("transparent_hugepages_state"))); entity.setAnonymousHugePages(rs.getInt("anonymous_hugepages")); entity.setHooksStr(rs.getString("hooks")); entity.setNonOperationalReason(NonOperationalReason.forValue(rs .getInt("non_operational_reason"))); return entity; } }; return getCallsHandler().executeRead("GetVdsDynamicByVdsId", mapper, parameterSource); } @Override public void save(VdsDynamic vds) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("cpu_cores", vds.getcpu_cores()) .addValue("cpu_model", vds.getcpu_model()) .addValue("cpu_speed_mh", vds.getcpu_speed_mh()) .addValue("if_total_speed", vds.getif_total_speed()) .addValue("kvm_enabled", vds.getkvm_enabled()) .addValue("mem_commited", vds.getmem_commited()) .addValue("physical_mem_mb", vds.getphysical_mem_mb()) .addValue("status", vds.getstatus()) .addValue("vds_id", vds.getId()) .addValue("vm_active", vds.getvm_active()) .addValue("vm_count", vds.getvm_count()) .addValue("vms_cores_count", vds.getvms_cores_count()) .addValue("vm_migrating", vds.getvm_migrating()) .addValue("reserved_mem", vds.getreserved_mem()) .addValue("guest_overhead", vds.getguest_overhead()) .addValue("software_version", vds.getsoftware_version()) .addValue("version_name", vds.getversion_name()) .addValue("build_name", vds.getbuild_name()) .addValue("previous_status", vds.getprevious_status()) .addValue("cpu_flags", vds.getcpu_flags()) .addValue("cpu_over_commit_time_stamp", vds.getcpu_over_commit_time_stamp()) .addValue("hypervisor_type", vds.gethypervisor_type()) .addValue("pending_vcpus_count", vds.getpending_vcpus_count()) .addValue("pending_vmem_size", vds.getpending_vmem_size()) .addValue("cpu_sockets", vds.getcpu_sockets()) .addValue("net_config_dirty", vds.getnet_config_dirty()) .addValue("supported_cluster_levels", vds.getsupported_cluster_levels()) .addValue("supported_engines", vds.getsupported_engines()) .addValue("host_os", vds.gethost_os()) .addValue("kvm_version", vds.getkvm_version()) .addValue("spice_version", vds.getspice_version()) .addValue("kernel_version", vds.getkernel_version()) .addValue("iscsi_initiator_name", vds.getIScsiInitiatorName()) .addValue("transparent_hugepages_state", vds.getTransparentHugePagesState().getValue()) .addValue("anonymous_hugepages", vds.getAnonymousHugePages()) .addValue("hooks", vds.getHooksStr()) .addValue("non_operational_reason", vds.getNonOperationalReason().getValue()); getCallsHandler().executeModification("InsertVdsDynamic", parameterSource); } @Override public void update(VdsDynamic vds) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("cpu_cores", vds.getcpu_cores()) .addValue("cpu_model", vds.getcpu_model()) .addValue("cpu_speed_mh", vds.getcpu_speed_mh()) .addValue("if_total_speed", vds.getif_total_speed()) .addValue("kvm_enabled", vds.getkvm_enabled()) .addValue("mem_commited", vds.getmem_commited()) .addValue("physical_mem_mb", vds.getphysical_mem_mb()) .addValue("status", vds.getstatus()) .addValue("vds_id", vds.getId()) .addValue("vm_active", vds.getvm_active()) .addValue("vm_count", vds.getvm_count()) .addValue("vms_cores_count", vds.getvms_cores_count()) .addValue("vm_migrating", vds.getvm_migrating()) .addValue("reserved_mem", vds.getreserved_mem()) .addValue("guest_overhead", vds.getguest_overhead()) .addValue("software_version", vds.getsoftware_version()) .addValue("version_name", vds.getversion_name()) .addValue("build_name", vds.getbuild_name()) .addValue("previous_status", vds.getprevious_status()) .addValue("cpu_flags", vds.getcpu_flags()) .addValue("cpu_over_commit_time_stamp", vds.getcpu_over_commit_time_stamp()) .addValue("hypervisor_type", vds.gethypervisor_type()) .addValue("pending_vcpus_count", vds.getpending_vcpus_count()) .addValue("pending_vmem_size", vds.getpending_vmem_size()) .addValue("cpu_sockets", vds.getcpu_sockets()) .addValue("net_config_dirty", vds.getnet_config_dirty()) .addValue("supported_cluster_levels", vds.getsupported_cluster_levels()) .addValue("supported_engines", vds.getsupported_engines()) .addValue("host_os", vds.gethost_os()) .addValue("kvm_version", vds.getkvm_version()) .addValue("spice_version", vds.getspice_version()) .addValue("kernel_version", vds.getkernel_version()) .addValue("iscsi_initiator_name", vds.getIScsiInitiatorName()) .addValue("transparent_hugepages_state", vds.getTransparentHugePagesState().getValue()) .addValue("anonymous_hugepages", vds.getAnonymousHugePages()) .addValue("hooks", vds.getHooksStr()) .addValue("non_operational_reason", vds.getNonOperationalReason().getValue()); getCallsHandler().executeModification("UpdateVdsDynamic", parameterSource); } @Override public void remove(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("vds_id", id); getCallsHandler().executeModification("DeleteVdsDynamic", parameterSource); } @Override public List<VdsDynamic> getAll() { throw new NotImplementedException(); } @Override public void updateStatus(Guid id, VDSStatus status) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("vds_guid", id) .addValue("status", status); getCallsHandler().executeModification("UpdateVdsDynamicStatus", parameterSource); } }