Updated Branches: refs/heads/4.2 4653cff88 -> 03cbf51e1
Cloudstack-3910 Upgrade from 3.0.6 to 4.2 is failing with DB exceptions. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/03cbf51e Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/03cbf51e Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/03cbf51e Branch: refs/heads/4.2 Commit: 03cbf51e159a452f18f560ac64c6ae64e34df12c Parents: 4653cff Author: Bharat Kumar <[email protected]> Authored: Mon Jul 29 20:21:54 2013 +0530 Committer: Kishan Kavala <[email protected]> Committed: Tue Jul 30 19:12:59 2013 +0530 ---------------------------------------------------------------------- .../com/cloud/upgrade/dao/Upgrade410to420.java | 60 ++++++++++++++++++++ setup/db/db/schema-410to420.sql | 2 - 2 files changed, 60 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/03cbf51e/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 e8ca579..13074cf 100644 --- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java +++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java @@ -100,6 +100,7 @@ public class Upgrade410to420 implements DbUpgrade { migrateSnapshotStoreRef(conn); fixNiciraKeys(conn); fixRouterKeys(conn); + updateConcurrentConnectionsInNetworkOfferings(conn); } private void fixBaremetalForeignKeys(Connection conn) { @@ -1942,4 +1943,63 @@ public class Upgrade410to420 implements DbUpgrade { } } } + + protected void updateConcurrentConnectionsInNetworkOfferings(Connection conn) { + PreparedStatement pstmt = null; + ResultSet rs = null; + ResultSet rs1 = null; + ResultSet rs2 = null; + try { + try { + pstmt = conn.prepareStatement("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'cloud' AND TABLE_NAME = 'network_offerings' AND COLUMN_NAME = 'concurrent_connections'"); + rs = pstmt.executeQuery(); + if (!rs.next()) { + pstmt = conn.prepareStatement("ALTER TABLE `cloud`.`network_offerings` ADD COLUMN `concurrent_connections` int(10) unsigned COMMENT 'Load Balancer(haproxy) maximum number of concurrent connections(global max)'"); + pstmt.executeUpdate(); + } + }catch (SQLException e) { + throw new CloudRuntimeException("migration of concurrent connections from network_detais failed"); + } + + + + pstmt = conn.prepareStatement("select network_id, value from `cloud`.`network_details` where name='maxconnections'"); + rs = pstmt.executeQuery(); + while (rs.next()) { + long networkId = rs.getLong(1); + int maxconnections = Integer.parseInt(rs.getString(2)); + pstmt = conn.prepareStatement("select network_offering_id from `cloud`.`networks` where id= ?"); + pstmt.setLong(1, networkId); + rs1 = pstmt.executeQuery(); + if (rs1.next()) { + long network_offering_id = rs1.getLong(1); + pstmt = conn.prepareStatement("select concurrent_connections from `cloud`.`network_offerings` where id= ?"); + pstmt.setLong(1,network_offering_id); + rs2 = pstmt.executeQuery(); + if ((!rs2.next()) || (rs2.getInt(1) < maxconnections)) { + pstmt = conn.prepareStatement("update network_offerings set concurrent_connections=? where id=?"); + pstmt.setInt(1, maxconnections); + pstmt.setLong(2, network_offering_id); + pstmt.executeUpdate(); + } + } + } + } catch (SQLException e) { + } + finally { + try { + if (rs != null) { + rs.close(); + } + + if (rs1 != null) { + rs1.close(); + } + if (pstmt != null) { + pstmt.close(); + } + } catch (SQLException e) { + } + } + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/03cbf51e/setup/db/db/schema-410to420.sql ---------------------------------------------------------------------- diff --git a/setup/db/db/schema-410to420.sql b/setup/db/db/schema-410to420.sql index 15044a5..9cdf837 100644 --- a/setup/db/db/schema-410to420.sql +++ b/setup/db/db/schema-410to420.sql @@ -2193,8 +2193,6 @@ ALTER TABLE `cloud_usage`.`usage_storage` ADD COLUMN `virtual_size` bigint unsig ALTER TABLE `cloud_usage`.`cloud_usage` ADD COLUMN `virtual_size` bigint unsigned; INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Network', 'DEFAULT', 'management-server', 'network.loadbalancer.haproxy.max.conn', '4096', 'Load Balancer(haproxy) maximum number of concurrent connections(global max)'); -ALTER TABLE `cloud`.`network_offerings` ADD COLUMN `concurrent_connections` int(10) unsigned COMMENT 'Load Balancer(haproxy) maximum number of concurrent connections(global max)'; - DROP TABLE IF EXISTS `cloud_usage`.`usage_vmsnapshot`; CREATE TABLE `cloud_usage`.`usage_vmsnapshot` ( `id` bigint(20) unsigned NOT NULL,
