Gilad Chaplik has uploaded a new change for review. Change subject: core: update CPU QoS policy for running VMs ......................................................................
core: update CPU QoS policy for running VMs If a VM succeed to run and has CPU QoS attached, update the vm policy. Change-Id: Ia762ef4fc26cbfa913c077d34da51a9fa44946e8 Signed-off-by: Gilad Chaplik <[email protected]> --- M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/CpuQosDao.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/CpuQosDaoDbFacadeImpl.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java 3 files changed, 28 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/31/31631/1 diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/CpuQosDao.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/CpuQosDao.java index 88e633a..a7c0a2d 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/CpuQosDao.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/CpuQosDao.java @@ -1,7 +1,10 @@ package org.ovirt.engine.core.dao.qos; import org.ovirt.engine.core.common.businessentities.qos.CpuQos; +import org.ovirt.engine.core.compat.Guid; public interface CpuQosDao extends QosDao<CpuQos> { + CpuQos getCpuQosByVmId(Guid vmId); + } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/CpuQosDaoDbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/CpuQosDaoDbFacadeImpl.java index 34d54dd..ec4eb8f 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/CpuQosDaoDbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/qos/CpuQosDaoDbFacadeImpl.java @@ -5,6 +5,7 @@ import org.ovirt.engine.core.common.businessentities.qos.CpuQos; import org.ovirt.engine.core.common.businessentities.qos.QosType; +import org.ovirt.engine.core.compat.Guid; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; @@ -22,6 +23,15 @@ } @Override + public CpuQos getCpuQosByVmId(Guid vmId) { + MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() + .addValue("vm_id", vmId); + return getCallsHandler().executeRead("GetQosByVmId", + createEntityRowMapper(), + parameterSource); + } + + @Override protected RowMapper<CpuQos> createEntityRowMapper() { return CpuDaoDbFacadaeImplMapper.MAPPER; } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java index da7c0df..4ab5c1b 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java @@ -56,6 +56,7 @@ import org.ovirt.engine.core.common.businessentities.network.VdsNetworkStatistics; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.common.businessentities.network.VmNetworkStatistics; +import org.ovirt.engine.core.common.businessentities.qos.CpuQos; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.utils.Pair; @@ -65,6 +66,7 @@ import org.ovirt.engine.core.common.vdscommands.FullListVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.GetVmStatsVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.SetVdsStatusVDSCommandParameters; +import org.ovirt.engine.core.common.vdscommands.UpdateVmPolicyVDSParams; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.common.vdscommands.VdsIdAndVdsVDSCommandParametersBase; @@ -79,6 +81,7 @@ import org.ovirt.engine.core.utils.ObjectIdentityChecker; import org.ovirt.engine.core.utils.log.Log; import org.ovirt.engine.core.utils.log.LogFactory; +import org.ovirt.engine.core.utils.threadpool.ThreadPoolUtil; import org.ovirt.engine.core.utils.transaction.TransactionMethod; import org.ovirt.engine.core.utils.transaction.TransactionSupport; import org.ovirt.engine.core.vdsbroker.irsbroker.IRSErrorException; @@ -566,6 +569,18 @@ for (Guid vm_guid : _succededToRunVms) { _vdsManager.succededToRunVm(vm_guid); } + ThreadPoolUtil.execute(new Runnable() { + @Override + public void run() { + for (Guid vmId : _succededToRunVms) { + CpuQos qos = DbFacade.getInstance().getCpuQosDao().getCpuQosByVmId(vmId); + if (qos != null && qos.getCpuLimit() != null) { + getResourceManager().runVdsCommand(VDSCommandType.UpdateVmPolicy, + new UpdateVmPolicyVDSParams(_vds.getId(), vmId, qos.getCpuLimit().intValue())); + } + } + } + }); // Refrain from auto-start HA VM during its re-run attempts. _autoVmsToRun.removeAll(_vmsToRerun); -- To view, visit http://gerrit.ovirt.org/31631 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia762ef4fc26cbfa913c077d34da51a9fa44946e8 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Gilad Chaplik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
