CLOUDSTACK-5408 [Automation] Failed to deploy vm in vmware environment with error "due to java.io.IOException: Cannot run program "mount": java.io.IOException: error=12, Cannot allocate memory"
Bump up RAM size of system offering for SSVM to 512MB Signed-off-by: Sateesh Chodapuneedi <sate...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ba96c8ca Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ba96c8ca Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ba96c8ca Branch: refs/heads/rbac Commit: ba96c8cadfa4b1dc7ee74fdb26ba5cea87e29b91 Parents: ab42946 Author: Sateesh Chodapuneedi <sate...@apache.org> Authored: Wed Jan 15 01:38:34 2014 +0530 Committer: Sateesh Chodapuneedi <sate...@apache.org> Committed: Wed Jan 15 01:45:12 2014 +0530 ---------------------------------------------------------------------- .../com/cloud/upgrade/dao/Upgrade421to430.java | 43 ++++++++++++++++++++ 1 file changed, 43 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ba96c8ca/engine/schema/src/com/cloud/upgrade/dao/Upgrade421to430.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade421to430.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade421to430.java index 268a27d..bf08e87 100644 --- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade421to430.java +++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade421to430.java @@ -63,6 +63,49 @@ public class Upgrade421to430 implements DbUpgrade { @Override public void performDataMigration(Connection conn) { encryptLdapConfigParams(conn); + upgradeMemoryOfSsvmOffering(conn); + } + + private void upgradeMemoryOfSsvmOffering(Connection conn) { + PreparedStatement updatePstmt = null; + PreparedStatement selectPstmt = null; + ResultSet selectResultSet = null; + int newRamSize = 512; //512MB + long serviceOfferingId = 0; + + /** + * Pick first row in service_offering table which has system vm type as secondary storage vm. User added offerings would start from 2nd row onwards. + * We should not update/modify any user-defined offering. + */ + + try { + selectPstmt = conn.prepareStatement("SELECT id FROM `cloud`.`service_offering` WHERE vm_type='secondarystoragevm'"); + updatePstmt = conn.prepareStatement("UPDATE `cloud`.`service_offering` SET ram_size=? WHERE id=?'"); + selectResultSet = selectPstmt.executeQuery(); + if(selectResultSet.next()) { + serviceOfferingId = selectResultSet.getLong("id"); + } + + updatePstmt.setInt(1, newRamSize); + updatePstmt.setLong(2, serviceOfferingId); + updatePstmt.executeUpdate(); + } catch (SQLException e) { + throw new CloudRuntimeException("Unable to upgrade ram_size of service offering for secondary storage vm. ", e); + } finally { + try { + if (selectPstmt != null) { + selectPstmt.close(); + } + if (selectResultSet != null) { + selectResultSet.close(); + } + if (updatePstmt != null) { + updatePstmt.close(); + } + } catch (SQLException e) { + } + } + s_logger.debug("Done upgrading RAM for service offering of Secondary Storage VM to " + newRamSize); } private void encryptLdapConfigParams(Connection conn) {