cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kis...@apache.org
Subject git commit: updated refs/heads/4.4-forward to 489bb0c
Date Mon, 05 May 2014 06:08:55 GMT
Repository: cloudstack
Updated Branches:
  refs/heads/4.4-forward d81c5c44f -> 489bb0c7e


Cloudstack-5077: reserve cpu and memory only when vmware.reserve.cpu/mem are set to true.
Insted of setting the ovecommit values to one on upgrade, we popultate them from the global
values.

Conflicts:
	engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
	engine/schema/src/com/cloud/upgrade/dao/Upgrade420to421.java
	plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java


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

Branch: refs/heads/4.4-forward
Commit: 489bb0c7edf6ab011895d5f082328eb5fe48aac1
Parents: d81c5c4
Author: Bharat Kumar <bharat.kumar@citrix.com>
Authored: Mon Dec 16 11:13:23 2013 -0800
Committer: Kishan Kavala <kishan@cloud.com>
Committed: Mon May 5 11:32:51 2014 +0530

----------------------------------------------------------------------
 .../com/cloud/upgrade/dao/Upgrade410to420.java  |  4 +-
 .../com/cloud/upgrade/dao/Upgrade420to421.java  | 76 ++++++++++++++------
 .../vmware/resource/VmwareResource.java         | 23 +++---
 setup/db/db/schema-420to421.sql                 |  3 +-
 4 files changed, 67 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/489bb0c7/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
index 82b6d84..671cbb7 100755
--- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
+++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
@@ -738,8 +738,8 @@ public class Upgrade410to420 implements DbUpgrade {
                     pstmt2.execute();
                 } else {
                     //update cluster_details table with the default overcommit ratios.
-                    pstmt1.setLong(1, id);
-                    pstmt1.setString(2, "1");
+                    pstmt1.setLong(1,id);
+                    pstmt1.setString(2,global_cpu_overprovisioning_factor);
                     pstmt1.execute();
                     pstmt2.setLong(1, id);
                     pstmt2.setString(2, "1");

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/489bb0c7/engine/schema/src/com/cloud/upgrade/dao/Upgrade420to421.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade420to421.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade420to421.java
index c3a6b06..a0093f8 100644
--- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade420to421.java
+++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade420to421.java
@@ -23,6 +23,7 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
+import com.cloud.hypervisor.Hypervisor;
 import org.apache.log4j.Logger;
 
 import com.cloud.utils.exception.CloudRuntimeException;
@@ -64,10 +65,12 @@ public class Upgrade420to421 implements DbUpgrade {
     @Override
     public void performDataMigration(Connection conn) {
         upgradeResourceCount(conn);
-        updateCpuOverprovisioning(conn);
+        updateOverprovisioningPerVm(conn);
     }
 
-    private void updateCpuOverprovisioning(Connection conn) {
+
+
+    private void updateOverprovisioningPerVm(Connection conn) {
         PreparedStatement pstmt1 = null;
         PreparedStatement pstmt2 = null;
         PreparedStatement pstmt3 = null;
@@ -79,28 +82,49 @@ public class Upgrade420to421 implements DbUpgrade {
         try {
             pstmt1 = conn.prepareStatement("select value from `cloud`.`configuration` where
name='cpu.overprovisioning.factor'");
             result1 = pstmt1.executeQuery();
-            String overprov = "1";
-            if (result1.next()) {
-                overprov = result1.getString(1);
+            String cpuoverprov = "1";
+            if(result1.next()){
+                cpuoverprov = result1.getString(1);
+            }
+            pstmt1 = conn.prepareStatement("select value from `cloud`.`configuration` where
name='mem.overprovisioning.factor'");
+            result1 = pstmt1.executeQuery();
+            String memoverprov = "1";
+            if(result1.next()){
+                memoverprov = result1.getString(1);
             }
+
             // Need to populate only when overprovisioning factor doesn't pre exist.
             s_logger.debug("Starting updating user_vm_details with cpu/memory overprovisioning
factors");
-            pstmt2 =
-                conn.prepareStatement("select id from `cloud`.`vm_instance` where removed
is null and id not in (select vm_id from  `cloud`.`user_vm_details` where name='cpuOvercommitRatio')");
+            pstmt2 = conn.prepareStatement("select id, hypervisor_type from `cloud`.`vm_instance`
where removed is null and id not in (select vm_id from  `cloud`.`user_vm_details` where name='cpuOvercommitRatio')");
             pstmt3 = conn.prepareStatement("INSERT IGNORE INTO cloud.user_vm_details (vm_id,
name, value) VALUES (?, ?, ?)");
             result2 = pstmt2.executeQuery();
             while (result2.next()) {
-                //For cpu
-                pstmt3.setLong(1, result2.getLong(1));
-                pstmt3.setString(2, "cpuOvercommitRatio");
-                pstmt3.setString(3, overprov);
-                pstmt3.executeUpdate();
+                String hypervisor_type = result2.getString(2);
+                if (hypervisor_type.equalsIgnoreCase(Hypervisor.HypervisorType.VMware.name()))
{
+                    //For cpu
+                    pstmt3.setLong(1, result2.getLong(1));
+                    pstmt3.setString(2, "cpuOvercommitRatio");
+                    pstmt3.setString(3, cpuoverprov);
+                    pstmt3.executeUpdate();
+
+                    // For memory
+                    pstmt3.setLong(1, result2.getLong(1));
+                    pstmt3.setString(2, "memoryOvercommitRatio");
+                    pstmt3.setString(3, memoverprov); // memory overprovisioning was used
to reserve memory in case of VMware.
+                    pstmt3.executeUpdate();
+                } else {
+                    //For cpu
+                    pstmt3.setLong(1, result2.getLong(1));
+                    pstmt3.setString(2, "cpuOvercommitRatio");
+                    pstmt3.setString(3, cpuoverprov);
+                    pstmt3.executeUpdate();
 
-                // For memory
-                pstmt3.setLong(1, result2.getLong(1));
-                pstmt3.setString(2, "memoryOvercommitRatio");
-                pstmt3.setString(3, "1"); // memory overprovisioning didn't exist earlier.
-                pstmt3.executeUpdate();
+                    // For memory
+                    pstmt3.setLong(1, result2.getLong(1));
+                    pstmt3.setString(2, "memoryOvercommitRatio");
+                    pstmt3.setString(3, "1"); // memory overprovisioning didn't exist earlier.
+                    pstmt3.executeUpdate();
+                }
             }
             s_logger.debug("Done updating user_vm_details with cpu/memory overprovisioning
factors");
 
@@ -108,13 +132,23 @@ public class Upgrade420to421 implements DbUpgrade {
             throw new CloudRuntimeException("Unable to update cpu/memory overprovisioning
factors", e);
         } finally {
             try {
-                if (pstmt1 != null)
+                if (pstmt1 != null && !pstmt1.isClosed())  {
                     pstmt1.close();
-                if (pstmt2 != null)
+                }
+                if (pstmt2 != null && !pstmt2.isClosed())  {
                     pstmt2.close();
-                if (pstmt3 != null)
+                }
+                if (pstmt3 != null && !pstmt3.isClosed())  {
                     pstmt3.close();
-            } catch (SQLException e) {
+                }
+                if (result1 != null) {
+                    result1.close();
+                }
+                if (result2 != null) {
+                   result2.close();
+                }
+            }catch (SQLException e){
+
             }
         }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/489bb0c7/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
index 30a9bf0..52421fa 100755
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
@@ -1721,24 +1721,17 @@ public class VmwareResource implements StoragePoolResource, ServerResource,
Vmwa
     }
 
     int getReservedMemoryMb(VirtualMachineTO vmSpec) {
-        if (vmSpec.getDetails().get(Config.VmwareReserveMem.key()).equalsIgnoreCase("true"))
{
-            return (int)(vmSpec.getMinRam() / (1024 * 1024));
-        } else if (vmSpec.getMinRam() != vmSpec.getMaxRam()) {
-            s_logger.warn("memory overprovisioning factor is set to " + (vmSpec.getMaxRam()
/ vmSpec.getMinRam()) + " ignoring the flag vmware.reserve.mem");
-            return (int)(vmSpec.getMinRam() / (1024 * 1024));
-        }
-        return 0;
+         if (vmSpec.getDetails().get(Config.VmwareReserveMem.key()).equalsIgnoreCase("true"))
{
+             return  (int) (vmSpec.getMinRam() / (1024 * 1024));
+         }
+         return 0;
     }
 
     int getReservedCpuMHZ(VirtualMachineTO vmSpec) {
-        if (vmSpec.getDetails().get(Config.VmwareReserveCpu.key()).equalsIgnoreCase("true"))
{
-            return vmSpec.getMinSpeed();
-        } else if (vmSpec.getMinSpeed().intValue() != vmSpec.getMaxSpeed().intValue()) {
-            s_logger.warn("cpu overprovisioning factor is set to " + (vmSpec.getMaxSpeed().intValue()
/ vmSpec.getMinSpeed().intValue()) +
-                    " ignoring the flag vmware.reserve.cpu");
-            return vmSpec.getMinSpeed();
-        }
-        return 0;
+         if (vmSpec.getDetails().get(Config.VmwareReserveCpu.key()).equalsIgnoreCase("true"))
{
+             return vmSpec.getMinSpeed();
+         }
+         return 0;
     }
 
     // return the finalized disk chain for startup, from top to bottom

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/489bb0c7/setup/db/db/schema-420to421.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-420to421.sql b/setup/db/db/schema-420to421.sql
index 42e9c1e..78687f2 100644
--- a/setup/db/db/schema-420to421.sql
+++ b/setup/db/db/schema-420to421.sql
@@ -24,7 +24,8 @@ INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT',
'manag
     'The maximum size limit for S3 single part upload API(in GB). If it is set to 0, then
it means always use multi-part upload to upload object to S3. If it is set to -1, then it
means always use single-part upload to upload object to S3.');
 
 INSERT IGNORE INTO `cloud`.`configuration` VALUES ("Storage", 'DEFAULT', 'management-server',
"enable.ha.storage.migration", "true", "Enable/disable storage migration across primary storage
during HA"); 
-
+UPDATE `cloud`.`configuration` SET description="Specify whether or not to reserve CPU based
on CPU overprovisioning factor" where name="vmware.reserve.cpu";
+UPDATE `cloud`.`configuration` SET description="Specify whether or not to reserve memory
based on memory overprovisioning factor" where name="vmware.reserve.mem";
 -- Remove Windows Server 8 from guest_os_type dropdown to use Windows Server 2012
 DELETE FROM `cloud`.`guest_os_hypervisor` where guest_os_id=168;
 DELETE FROM `cloud`.`guest_os` where id=168;


Mime
View raw message