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
