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

Reply via email to