You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ap...@apache.org on 2013/02/22 15:40:14 UTC

git commit: refs/heads/master - CLOUDSTACK 711: CPU and RAM overcommit update cluster part

Updated Branches:
  refs/heads/master 54f7933f1 -> 667aa1751


CLOUDSTACK 711: CPU and RAM overcommit update cluster part


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/667aa175
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/667aa175
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/667aa175

Branch: refs/heads/master
Commit: 667aa1751219fc48daefba62a253baaf4b71c6e4
Parents: 54f7933
Author: Bharat Kumar <bh...@citrix.com>
Authored: Fri Feb 22 20:09:50 2013 +0530
Committer: Abhinandan Prateek <ap...@apache.org>
Committed: Fri Feb 22 20:09:50 2013 +0530

----------------------------------------------------------------------
 api/src/com/cloud/resource/ResourceService.java    |    2 +-
 .../kvm/resource/LibvirtComputingResource.java     |   10 +---
 .../com/cloud/resource/ResourceManagerImpl.java    |   38 ++++++++++++++-
 .../cloud/resource/MockResourceManagerImpl.java    |    3 +
 4 files changed, 44 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/667aa175/api/src/com/cloud/resource/ResourceService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/resource/ResourceService.java b/api/src/com/cloud/resource/ResourceService.java
index 83718d4..08e2585 100755
--- a/api/src/com/cloud/resource/ResourceService.java
+++ b/api/src/com/cloud/resource/ResourceService.java
@@ -71,7 +71,7 @@ public interface ResourceService {
 
     boolean deleteCluster(DeleteClusterCmd cmd);
 
-    Cluster updateCluster(Cluster cluster, String clusterType, String hypervisor, String allocationState, String managedstate, Float memoryOvercommitRaito, Float cpuOvercommitRatio);
+    Cluster updateCluster(Cluster cluster, String clusterType, String hypervisor, String allocationState, String managedstate,Float memoryOvercommitRatio, Float cpuOvercommitRatio);
 
     List<? extends Host> discoverHosts(AddHostCmd cmd) throws IllegalArgumentException, DiscoveryException, InvalidParameterValueException;
 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/667aa175/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index f7d1b4a..99b8723 100755
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -2921,15 +2921,11 @@ ServerResource {
         vm.addComp(guest);
 
         GuestResourceDef grd = new GuestResourceDef();
-        //check if overcommit should be considered.
-        if(vmTO.getMinSpeed() == vmTO.getMaxSpeed()){
 
-
-        }
         if (vmTO.getMinRam() != vmTO.getMaxRam()){
-             grd.setMemBalloning(true);
-             grd.setCurrentMem((int)vmTO.getMinRam()/1024);
-             grd.setMemorySize((int)vmTO.getMaxRam()/1024);
+            grd.setMemBalloning(true);
+            grd.setCurrentMem((int)vmTO.getMinRam()/1024);
+            grd.setMemorySize((int)vmTO.getMaxRam()/1024);
         }
         else{
             grd.setMemorySize(vmTO.getMaxRam() / 1024);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/667aa175/server/src/com/cloud/resource/ResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java
index 0df1563..14628c1 100755
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@ -496,6 +496,17 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
 
         _clusterDetailsDao.persist(cluster_detail_cpu);
         _clusterDetailsDao.persist(cluster_detail_ram);
+        //create a new entry only if the overcommit ratios are greater than 1.
+        if(cmd.getCpuOvercommitRatio().compareTo(1f) > 0) {
+            cluster_detail_cpu = new ClusterDetailsVO(clusterId, "cpuOvercommitRatio", Float.toString(cmd.getCpuOvercommitRatio()));
+            _clusterDetailsDao.persist(cluster_detail_cpu);
+        }
+
+
+        if(cmd.getMemoryOvercommitRaito().compareTo(1f) > 0) {
+             cluster_detail_ram = new ClusterDetailsVO(clusterId, "memoryOvercommitRatio", Float.toString(cmd.getMemoryOvercommitRaito()));
+            _clusterDetailsDao.persist(cluster_detail_ram);
+        }
 
 
         boolean success = false;
@@ -1065,7 +1076,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
     @Override
     @DB
 	public Cluster updateCluster(Cluster clusterToUpdate, String clusterType,
-                                 String hypervisor, String allocationState, String managedstate, Float memoryOvercommitRaito, Float cpuOvercommitRatio) {
+			String hypervisor, String allocationState, String managedstate,Float memoryovercommitratio, Float cpuovercommitratio) {
 
         ClusterVO cluster = (ClusterVO) clusterToUpdate;
         // Verify cluster information and update the cluster if needed
@@ -1148,6 +1159,31 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
             }
         }
 
+       ClusterDetailsVO memory_detail = _clusterDetailsDao.findDetail(cluster.getId(),"memoryOvercommitRatio");
+       if( memory_detail == null){
+           if (memoryovercommitratio.compareTo(1f) > 0){
+               memory_detail = new ClusterDetailsVO(cluster.getId(),"memoryOvercommitRatio",Float.toString(memoryovercommitratio));
+               _clusterDetailsDao.persist(memory_detail);
+           }
+       }
+       else {
+           memory_detail.setValue(Float.toString(memoryovercommitratio));
+           _clusterDetailsDao.update(memory_detail.getId(),memory_detail);
+       }
+
+        ClusterDetailsVO cpu_detail = _clusterDetailsDao.findDetail(cluster.getId(),"cpuOvercommitRatio");
+        if( cpu_detail == null){
+            if (cpuovercommitratio.compareTo(1f) > 0){
+                cpu_detail = new ClusterDetailsVO(cluster.getId(),"cpuOvercommitRatio",Float.toString(cpuovercommitratio));
+                _clusterDetailsDao.persist(cpu_detail);
+            }
+        }
+        else {
+            cpu_detail.setValue(Float.toString(cpuovercommitratio));
+            _clusterDetailsDao.update(cpu_detail.getId(),cpu_detail);
+        }
+
+
         if (doUpdate) {
             Transaction txn = Transaction.currentTxn();
             try {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/667aa175/server/test/com/cloud/resource/MockResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/resource/MockResourceManagerImpl.java b/server/test/com/cloud/resource/MockResourceManagerImpl.java
index e7ab858..1d851a0 100644
--- a/server/test/com/cloud/resource/MockResourceManagerImpl.java
+++ b/server/test/com/cloud/resource/MockResourceManagerImpl.java
@@ -54,6 +54,9 @@ import com.cloud.storage.Swift;
 import com.cloud.template.VirtualMachineTemplate;
 import com.cloud.utils.Pair;
 import com.cloud.utils.component.ManagerBase;
+import com.cloud.utils.component.Manager;
+
+
 import com.cloud.utils.fsm.NoTransitionException;
 
 @Local(value = {ResourceManager.class})