Liran Zelkha has uploaded a new change for review.

Change subject: core: Move ResourceManager to batch update VdsDynamic
......................................................................

core: Move ResourceManager to batch update VdsDynamic

There is a TODO in ResourceManager to allow batch updates of VdsDynamic
this patch introduces MassOperations to VdsDynamic and allow batch updates
of it. I also changed ResourceManager to use the batch capability.

Change-Id: If857a328d591f87cf453f1620f134d5e0a137363
Bug-Url: https://bugzilla.redhat.com/??????
Signed-off-by: lzel...@redhat.com <lzel...@redhat.com>
---
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
3 files changed, 101 insertions(+), 120 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/51/23851/1

diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java
index 3c3b331..9b72477 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java
@@ -9,7 +9,7 @@
  *
  *
  */
-public interface VdsDynamicDAO extends GenericDao<VdsDynamic, Guid>, 
StatusAwareDao<Guid, VDSStatus> {
+public interface VdsDynamicDAO extends GenericDao<VdsDynamic, Guid>, 
StatusAwareDao<Guid, VDSStatus>, MassOperationsDao<VdsDynamic, Guid> {
 
    /**
      * Update entity net_config_dirty field
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java
index 7fe1c81..78a4e7c 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java
@@ -1,5 +1,10 @@
 package org.ovirt.engine.core.dao;
 
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.List;
+
 import org.apache.commons.lang.NotImplementedException;
 import org.ovirt.engine.core.common.businessentities.NonOperationalReason;
 import org.ovirt.engine.core.common.businessentities.VDSStatus;
@@ -8,15 +13,11 @@
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.RpmVersion;
 import org.ovirt.engine.core.dal.dbbroker.DbFacadeUtils;
+import org.ovirt.engine.core.dal.dbbroker.MapSqlParameterMapper;
 import org.ovirt.engine.core.utils.serialization.json.JsonObjectDeserializer;
 import org.ovirt.engine.core.utils.serialization.json.JsonObjectSerializer;
 import org.springframework.jdbc.core.RowMapper;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.List;
 
 /**
  * <code>VdsDAODbFacadeImpl</code> provides an implementation of {@link 
VdsDAO} that uses previously written code from
@@ -24,7 +25,11 @@
  *
  *
  */
-public class VdsDynamicDAODbFacadeImpl extends BaseDAODbFacade implements 
VdsDynamicDAO {
+public class VdsDynamicDAODbFacadeImpl extends 
MassOperationsGenericDaoDbFacade<VdsDynamic, Guid> implements VdsDynamicDAO {
+
+    public VdsDynamicDAODbFacadeImpl() {
+        super("VdsDynamic");
+    }
 
     private static final class VdcDynamicRowMapper implements 
RowMapper<VdsDynamic> {
         public static final VdcDynamicRowMapper instance = new 
VdcDynamicRowMapper();
@@ -103,119 +108,12 @@
 
     @Override
     public void save(VdsDynamic vds) {
-        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
-                .addValue("cpu_cores", vds.getcpu_cores())
-                .addValue("cpu_threads", vds.getCpuThreads())
-                .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("rpm_version", vds.getVersion().getRpmName())
-                .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("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("libvirt_version", 
vds.getlibvirt_version().getRpmName())
-                .addValue("spice_version", vds.getspice_version())
-                .addValue("gluster_version", 
vds.getGlusterVersion().getRpmName())
-                .addValue("kernel_version", vds.getkernel_version())
-                .addValue("iscsi_initiator_name", vds.getIScsiInitiatorName())
-                .addValue("transparent_hugepages_state",
-                        vds.getTransparentHugePagesState().getValue())
-                .addValue("hooks", vds.getHooksStr())
-                .addValue("non_operational_reason",
-                        vds.getNonOperationalReason().getValue())
-                .addValue("hw_manufacturer", vds.getHardwareManufacturer())
-                .addValue("hw_product_name", vds.getHardwareProductName())
-                .addValue("hw_version", vds.getHardwareVersion())
-                .addValue("hw_serial_number", vds.getHardwareSerialNumber())
-                .addValue("hw_uuid", vds.getHardwareUUID())
-                .addValue("hw_family", vds.getHardwareFamily())
-                .addValue("hbas", new 
JsonObjectSerializer().serialize(vds.getHBAs()))
-                .addValue("supported_emulated_machines", 
vds.getSupportedEmulatedMachines())
-                .addValue("controlled_by_pm_policy", 
vds.isPowerManagementControlledByPolicy());
-
-        getCallsHandler().executeModification("InsertVdsDynamic", 
parameterSource);
+        getCallsHandler().executeModification("InsertVdsDynamic", 
createFullParametersMapperForSave(vds));
     }
 
     @Override
     public void update(VdsDynamic vds) {
-        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
-                .addValue("cpu_cores", vds.getcpu_cores())
-                .addValue("cpu_threads", vds.getCpuThreads())
-                .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("rpm_version", vds.getVersion().getRpmName())
-                .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("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("libvirt_version", 
vds.getlibvirt_version().getRpmName())
-                .addValue("spice_version", vds.getspice_version())
-                .addValue("gluster_version", 
vds.getGlusterVersion().getRpmName())
-                .addValue("kernel_version", vds.getkernel_version())
-                .addValue("iscsi_initiator_name", vds.getIScsiInitiatorName())
-                .addValue("transparent_hugepages_state",
-                        vds.getTransparentHugePagesState().getValue())
-                .addValue("hooks", vds.getHooksStr())
-                .addValue("non_operational_reason",
-                        vds.getNonOperationalReason().getValue())
-                .addValue("hw_manufacturer", vds.getHardwareManufacturer())
-                .addValue("hw_product_name", vds.getHardwareProductName())
-                .addValue("hw_version", vds.getHardwareVersion())
-                .addValue("hw_serial_number", vds.getHardwareSerialNumber())
-                .addValue("hw_uuid", vds.getHardwareUUID())
-                .addValue("hw_family", vds.getHardwareFamily())
-                .addValue("hbas", new 
JsonObjectSerializer().serialize(vds.getHBAs()))
-                .addValue("supported_emulated_machines", 
vds.getSupportedEmulatedMachines());
-
-        getCallsHandler().executeModification("UpdateVdsDynamic", 
parameterSource);
+        getCallsHandler().executeModification("UpdateVdsDynamic", 
createFullParametersMapper(vds));
     }
 
     @Override
@@ -278,4 +176,90 @@
         
getCallsHandler().executeModification("UpdateVdsDynamicPowerManagementPolicyFlag",
 parameterSource);
 
     }
+
+    @Override
+    public MapSqlParameterMapper<VdsDynamic> getBatchMapper() {
+        return new MapSqlParameterMapper<VdsDynamic>() {
+
+            @Override
+            public MapSqlParameterSource map(VdsDynamic entity) {
+                return createFullParametersMapper(entity);
+            }
+
+        };
+    }
+
+    private MapSqlParameterSource createFullParametersMapperForSave(VdsDynamic 
vds) {
+        MapSqlParameterSource parameterSource = 
createFullParametersMapper(vds);
+        parameterSource.addValue("controlled_by_pm_policy", 
vds.isPowerManagementControlledByPolicy());
+        return parameterSource;
+    }
+
+    @Override
+    protected MapSqlParameterSource createFullParametersMapper(VdsDynamic vds) 
{
+        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
+                .addValue("cpu_cores", vds.getcpu_cores())
+                .addValue("cpu_threads", vds.getCpuThreads())
+                .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("rpm_version", vds.getVersion().getRpmName())
+                .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("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("libvirt_version", 
vds.getlibvirt_version().getRpmName())
+                .addValue("spice_version", vds.getspice_version())
+                .addValue("gluster_version", 
vds.getGlusterVersion().getRpmName())
+                .addValue("kernel_version", vds.getkernel_version())
+                .addValue("iscsi_initiator_name", vds.getIScsiInitiatorName())
+                .addValue("transparent_hugepages_state",
+                        vds.getTransparentHugePagesState().getValue())
+                .addValue("hooks", vds.getHooksStr())
+                .addValue("non_operational_reason",
+                        vds.getNonOperationalReason().getValue())
+                .addValue("hw_manufacturer", vds.getHardwareManufacturer())
+                .addValue("hw_product_name", vds.getHardwareProductName())
+                .addValue("hw_version", vds.getHardwareVersion())
+                .addValue("hw_serial_number", vds.getHardwareSerialNumber())
+                .addValue("hw_uuid", vds.getHardwareUUID())
+                .addValue("hw_family", vds.getHardwareFamily())
+                .addValue("hbas", new 
JsonObjectSerializer().serialize(vds.getHBAs()))
+                .addValue("supported_emulated_machines", 
vds.getSupportedEmulatedMachines());
+
+        return parameterSource;
+    }
+
+    @Override
+    protected MapSqlParameterSource createIdParameterMapper(Guid id) {
+        return getCustomMapSqlParameterSource().addValue("vds_id", id);
+    }
+
+    @Override
+    protected RowMapper<VdsDynamic> createEntityRowMapper() {
+        return VdcDynamicRowMapper.instance;
+    }
 }
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
index 2d16868..5f2f7df 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
@@ -116,10 +116,7 @@
             }
         }
 
-        // TODO replace this with batch processing once it becomes available
-        for (VdsDynamic entity: updatedEntities) {
-            DbFacade.getInstance().getVdsDynamicDao().update(entity);
-        }
+        
DbFacade.getInstance().getVdsDynamicDao().updateAllInBatch(updatedEntities);
 
         // Populate the VDS dictionary
         for (VDS curVds : allVdsList) {


-- 
To view, visit http://gerrit.ovirt.org/23851
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If857a328d591f87cf453f1620f134d5e0a137363
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Liran Zelkha <liran.zel...@gmail.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to