CLOUDSTACK-4538 Should update the vmware clusters with the global overporvisioning factors after upgrade to 4.2.

Signed off by : Nitin Mehta <nitin.mehta@citrix.com>
This commit is contained in:
bharat kumar 2013-08-29 12:24:45 +05:30 committed by Nitin Mehta
parent e6247e7125
commit da6f048dd2
1 changed files with 51 additions and 15 deletions

View File

@ -639,31 +639,67 @@ public class Upgrade410to420 implements DbUpgrade {
PreparedStatement pstmt = null;
PreparedStatement pstmt1 = null;
PreparedStatement pstmt2 =null;
ResultSet rs = null;
PreparedStatement pstmt3 = null;
ResultSet rs1 = null;
ResultSet rscpu_global = null;
ResultSet rsmem_global = null;
try {
pstmt = conn.prepareStatement("select id from `cloud`.`cluster`");
pstmt1=conn.prepareStatement("INSERT INTO `cloud`.`cluster_details` (cluster_id, name, value) VALUES(?, 'cpuOvercommitRatio', '1')");
pstmt2=conn.prepareStatement("INSERT INTO `cloud`.`cluster_details` (cluster_id, name, value) VALUES(?, 'memoryOvercommitRatio', '1')");
rs = pstmt.executeQuery();
while (rs.next()) {
long id = rs.getLong(1);
//update cluster_details table with the default overcommit ratios.
pstmt1.setLong(1,id);
pstmt1.execute();
pstmt2.setLong(1,id);
pstmt2.execute();
pstmt = conn.prepareStatement("select id, hypervisor_type from `cloud`.`cluster`");
pstmt1=conn.prepareStatement("INSERT INTO `cloud`.`cluster_details` (cluster_id, name, value) VALUES(?, 'cpuOvercommitRatio', ?)");
pstmt2=conn.prepareStatement("INSERT INTO `cloud`.`cluster_details` (cluster_id, name, value) VALUES(?, 'memoryOvercommitRatio', ?)");
pstmt3=conn.prepareStatement("select value from `cloud`.`configuration` where name=?");
pstmt3.setString(1,"cpu.overprovisioning.factor");
rscpu_global = pstmt3.executeQuery();
rscpu_global.next();
String global_cpu_overprovisioning_factor=rscpu_global.getString(1);
pstmt3.setString(1,"mem.overprovisioning.factor");
rsmem_global = pstmt3.executeQuery();
rsmem_global.next();
String global_mem_overprovisioning_factor = rsmem_global.getString(1);
rs1 = pstmt.executeQuery();
while (rs1.next()) {
long id = rs1.getLong(1);
String hypervisor_type = rs1.getString(2);
if (hypervisor_type.equalsIgnoreCase(HypervisorType.VMware.toString())) {
pstmt1.setLong(1,id);
pstmt1.setString(2,global_cpu_overprovisioning_factor);
pstmt1.execute();
pstmt2.setLong(1,id);
pstmt2.setString(2,global_mem_overprovisioning_factor);
pstmt2.execute();
}else {
//update cluster_details table with the default overcommit ratios.
pstmt1.setLong(1,id);
pstmt1.setString(2,"1");
pstmt1.execute();
pstmt2.setLong(1,id);
pstmt2.setString(2,"1");
pstmt2.execute();
}
}
} catch (SQLException e) {
throw new CloudRuntimeException("Unable to update cluster_details with default overcommit ratios.", e);
} finally {
try {
if (rs != null) {
rs.close();
if (rs1 != null) {
rs1.close();
}
if (rsmem_global != null) {
rsmem_global.close();
}
if (rscpu_global != null) {
rsmem_global.close();
}
if (pstmt != null) {
pstmt.close();
}
if (pstmt2 != null) {
pstmt2.close();
}
if (pstmt3 != null) {
pstmt3.close();
}
} catch (SQLException e) {
}
}