Michael Kublin has uploaded a new change for review.

Change subject: engine: Imroving updates of vds dynamic
......................................................................

engine: Imroving updates of vds dynamic

The following patch is removing call for UpdateVdsDynamicData command in order 
to
update net_config_dirty field.

The change is make a simple update instead of:
1. Run query for VdsDynamic
2. Acquire lock on VdsManager
3. Perform update

Change-Id: Ic9e76b6ddd20ebd36a00d68b44da3a3a954ad87d
Signed-off-by: Michael Kublin <[email protected]>
---
M backend/manager/dbscripts/vds_sp.sql
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/dal/src/test/java/org/ovirt/engine/core/dao/VdsDynamicDAOTest.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java
5 files changed, 41 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/56/13656/1

diff --git a/backend/manager/dbscripts/vds_sp.sql 
b/backend/manager/dbscripts/vds_sp.sql
index 1d2d955..80d1994 100644
--- a/backend/manager/dbscripts/vds_sp.sql
+++ b/backend/manager/dbscripts/vds_sp.sql
@@ -895,7 +895,18 @@
 END; $procedure$
 LANGUAGE plpgsql;
 
-
+Create or replace FUNCTION UpdateVdsDynamicNetConfigDirty(
+        v_vds_guid UUID,
+        v_net_config_dirty BOOLEAN)
+RETURNS VOID
+   AS $procedure$
+BEGIN
+      UPDATE vds_dynamic
+      SET
+      net_config_dirty = v_net_config_dirty
+      WHERE vds_id = v_vds_guid;
+END; $procedure$
+LANGUAGE plpgsql;
 
 Create or replace FUNCTION GetVdsByNetworkId(v_network_id UUID) RETURNS SETOF 
vds
    AS $procedure$
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 af0b3fe..c832746 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
@@ -10,4 +10,11 @@
  *
  */
 public interface VdsDynamicDAO extends GenericDao<VdsDynamic, Guid>, 
StatusAwareDao<Guid, VDSStatus> {
+
+   /**
+     * Update entity net_config_dirty field
+     * @param id - entity id
+     * @param netConfigDirty - a new value of field
+     */
+    void updateNetConfigDirty(Guid id, Boolean netConfigDirty);
 }
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 f5b73f1..2b089d9 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
@@ -231,4 +231,13 @@
 
         getCallsHandler().executeModification("UpdateVdsDynamicStatus", 
parameterSource);
     }
+
+    @Override
+    public void updateNetConfigDirty(Guid id, Boolean netConfigDirty) {
+        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
+                .addValue("vds_guid", id)
+                .addValue("net_config_dirty", netConfigDirty);
+
+        
getCallsHandler().executeModification("UpdateVdsDynamicNetConfigDirty", 
parameterSource);
+    }
 }
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsDynamicDAOTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsDynamicDAOTest.java
index 2edf321..faca191 100644
--- 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsDynamicDAOTest.java
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsDynamicDAOTest.java
@@ -96,4 +96,14 @@
         assertEquals(before, after);
     }
 
+    @Test
+    public void testUpdateNetConfigDirty() {
+        VdsDynamic before = dao.get(existingVds.getId());
+        Boolean netConfigDirty = before.getnet_config_dirty();
+        netConfigDirty = Boolean.FALSE.equals(netConfigDirty);
+        before.setnet_config_dirty(netConfigDirty);
+        dao.updateNetConfigDirty(before.getId(), netConfigDirty);
+        VdsDynamic after = dao.get(existingVds.getId());
+        assertEquals(before, after);
+    }
 }
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java
index f2bf4d8..7d23959 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/CollectVdsNetworkDataVDSCommand.java
@@ -14,12 +14,9 @@
 import org.ovirt.engine.core.common.businessentities.NonOperationalReason;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSStatus;
-import org.ovirt.engine.core.common.businessentities.VdsDynamic;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
 import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface.NetworkImplementationDetails;
-import 
org.ovirt.engine.core.common.vdscommands.UpdateVdsDynamicDataVDSCommandParameters;
-import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import 
org.ovirt.engine.core.common.vdscommands.VdsIdAndVdsVDSCommandParametersBase;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
@@ -59,10 +56,9 @@
 
             @Override
             public Void runInTransaction() {
-                VdsDynamic vdsDynamic = 
DbFacade.getInstance().getVdsDynamicDao().get(getVds().getId());
-                vdsDynamic.setnet_config_dirty(getVds().getNetConfigDirty());
-                
ResourceManager.getInstance().runVdsCommand(VDSCommandType.UpdateVdsDynamicData,
-                        new 
UpdateVdsDynamicDataVDSCommandParameters(vdsDynamic));
+                DbFacade.getInstance()
+                        .getVdsDynamicDao()
+                        .updateNetConfigDirty(getVds().getId(), 
getVds().getNetConfigDirty());
                 return null;
             }
         });


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic9e76b6ddd20ebd36a00d68b44da3a3a954ad87d
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Michael Kublin <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to