You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2015/08/03 22:02:20 UTC

[3/5] git commit: updated refs/heads/master to 118e954

extra try-w-r

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

Branch: refs/heads/master
Commit: 2b9f5b27bb919eb6815111b0b2904d4ce2e4750b
Parents: 119f6b0
Author: Daan Hoogland <da...@onecht.net>
Authored: Sun Jul 19 20:00:39 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Sun Aug 2 14:30:10 2015 +0200

----------------------------------------------------------------------
 .../com/cloud/upgrade/dao/Upgrade218to22.java   | 269 +++++++++----------
 1 file changed, 127 insertions(+), 142 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2b9f5b27/engine/schema/src/com/cloud/upgrade/dao/Upgrade218to22.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade218to22.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade218to22.java
index 28cf622..b1d24df 100644
--- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade218to22.java
+++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade218to22.java
@@ -583,170 +583,155 @@ public class Upgrade218to22 implements DbUpgrade {
     }
 
     protected void upgradeManagementIpAddress(Connection conn, long dcId) throws SQLException {
-        PreparedStatement pstmt = conn.prepareStatement("SELECT op_dc_ip_address_alloc.id FROM op_dc_ip_address_alloc WHERE data_center_id=?");
-        pstmt.setLong(1, dcId);
-        ResultSet rs = pstmt.executeQuery();
         ArrayList<Object[]> allocatedIps = new ArrayList<Object[]>();
-        while (rs.next()) {
-            Object[] ip = new Object[10];
-            ip[0] = rs.getLong(1); // id
-            allocatedIps.add(ip);
+        try (PreparedStatement pstmt = conn.prepareStatement("SELECT op_dc_ip_address_alloc.id FROM op_dc_ip_address_alloc WHERE data_center_id=?");) {
+            pstmt.setLong(1, dcId);
+            try (ResultSet rs = pstmt.executeQuery();) {
+                while (rs.next()) {
+                    Object[] ip = new Object[10];
+                    ip[0] = rs.getLong(1); // id
+                    allocatedIps.add(ip);
+                }
+            }
         }
-        rs.close();
-        pstmt.close();
-
         for (Object[] allocatedIp : allocatedIps) {
-            pstmt = conn.prepareStatement("SELECT mac_address FROM data_center WHERE id = ?");
-            pstmt.setLong(1, dcId);
-            rs = pstmt.executeQuery();
-            if (!rs.next()) {
-                throw new CloudRuntimeException("Unable to get mac address for data center " + dcId);
+            try (PreparedStatement pstmt = conn.prepareStatement("SELECT mac_address FROM data_center WHERE id = ?");) {
+                pstmt.setLong(1, dcId);
+                try (ResultSet rs = pstmt.executeQuery();) {
+                    if (!rs.next()) {
+                        throw new CloudRuntimeException("Unable to get mac address for data center " + dcId);
+                    }
+                    long mac = rs.getLong(1);
+                    try (PreparedStatement updateDcMacAddress = conn.prepareStatement("UPDATE data_center SET mac_address=mac_address+1 WHERE id = ?");) {
+                        updateDcMacAddress.setLong(1, dcId);
+                        updateDcMacAddress.executeUpdate();
+                    }
+                    try(PreparedStatement updateDcIp = conn.prepareStatement("UPDATE op_dc_ip_address_alloc SET mac_address=? WHERE id=?");) {
+                        updateDcIp.setLong(1, mac);
+                        updateDcIp.setLong(2, (Long)allocatedIp[0]);
+                        updateDcIp.executeUpdate();
+                    }
+                }
             }
-            long mac = rs.getLong(1);
-            rs.close();
-            pstmt.close();
-
-            pstmt = conn.prepareStatement("UPDATE data_center SET mac_address=mac_address+1 WHERE id = ?");
-            pstmt.setLong(1, dcId);
-            pstmt.executeUpdate();
-            pstmt.close();
-
-            pstmt = conn.prepareStatement("UPDATE op_dc_ip_address_alloc SET mac_address=? WHERE id=?");
-            pstmt.setLong(1, mac);
-            pstmt.setLong(2, (Long)allocatedIp[0]);
-            pstmt.executeUpdate();
-            pstmt.close();
         }
-
     }
 
     protected void upgradeDirectUserIpAddress(Connection conn, long dcId, long networkId, String vlanType) throws SQLException {
         s_logger.debug("Upgrading user ip address for data center " + dcId + " network " + networkId + " vlan type " + vlanType);
-        PreparedStatement pstmt =
-            conn.prepareStatement("UPDATE user_ip_address INNER JOIN vlan ON user_ip_address.vlan_db_id=vlan.id SET user_ip_address.source_network_id=vlan.network_id WHERE user_ip_address.data_center_id=? AND vlan.vlan_type=?");
-        pstmt.setLong(1, dcId);
-        pstmt.setString(2, vlanType);
-        pstmt.executeUpdate();
-        pstmt.close();
-
-        pstmt =
-            conn.prepareStatement("SELECT user_ip_address.id, user_ip_address.public_ip_address, user_ip_address.account_id, user_ip_address.allocated FROM user_ip_address INNER JOIN vlan ON vlan.id=user_ip_address.vlan_db_id WHERE user_ip_address.data_center_id = ? AND vlan.vlan_type=?");
-        pstmt.setLong(1, dcId);
-        pstmt.setString(2, vlanType);
-        ResultSet rs = pstmt.executeQuery();
-        ArrayList<Object[]> allocatedIps = new ArrayList<Object[]>();
-        while (rs.next()) {
-            Object[] ip = new Object[10];
-            ip[0] = rs.getLong(1); // id
-            ip[1] = rs.getString(2); // ip address
-            ip[2] = rs.getLong(3); // account id
-            ip[3] = rs.getDate(4); // allocated
-            allocatedIps.add(ip);
+        try (PreparedStatement pstmt =
+            conn.prepareStatement("UPDATE user_ip_address INNER JOIN vlan ON user_ip_address.vlan_db_id=vlan.id SET user_ip_address.source_network_id=vlan.network_id WHERE user_ip_address.data_center_id=? AND vlan.vlan_type=?");) {
+            pstmt.setLong(1, dcId);
+            pstmt.setString(2, vlanType);
+            pstmt.executeUpdate();
         }
-        rs.close();
-        pstmt.close();
-
-        s_logger.debug("Marking " + allocatedIps.size() + " ip addresses to belong to network " + networkId);
-        s_logger.debug("Updating mac addresses for data center id=" + dcId + ". Found " + allocatedIps.size() + " ip addresses to update");
-
-        for (Object[] allocatedIp : allocatedIps) {
-            pstmt = conn.prepareStatement("SELECT mac_address FROM data_center WHERE id = ?");
+        try (PreparedStatement pstmt =
+            conn.prepareStatement("SELECT user_ip_address.id, user_ip_address.public_ip_address, user_ip_address.account_id, user_ip_address.allocated FROM user_ip_address INNER JOIN vlan ON vlan.id=user_ip_address.vlan_db_id WHERE user_ip_address.data_center_id = ? AND vlan.vlan_type=?");) {
             pstmt.setLong(1, dcId);
-            rs = pstmt.executeQuery();
-            if (!rs.next()) {
-                throw new CloudRuntimeException("Unable to get mac address for data center " + dcId);
+            pstmt.setString(2, vlanType);
+            try (ResultSet rs = pstmt.executeQuery();) {
+                ArrayList<Object[]> allocatedIps = new ArrayList<Object[]>();
+                while (rs.next()) {
+                    Object[] ip = new Object[10];
+                    ip[0] = rs.getLong(1); // id
+                    ip[1] = rs.getString(2); // ip address
+                    ip[2] = rs.getLong(3); // account id
+                    ip[3] = rs.getDate(4); // allocated
+                    allocatedIps.add(ip);
+                }
+                s_logger.debug("Marking " + allocatedIps.size() + " ip addresses to belong to network " + networkId);
+                s_logger.debug("Updating mac addresses for data center id=" + dcId + ". Found " + allocatedIps.size() + " ip addresses to update");
+                for (Object[] allocatedIp : allocatedIps) {
+                    try (PreparedStatement selectMacAdresses = conn.prepareStatement("SELECT mac_address FROM data_center WHERE id = ?");) {
+                        selectMacAdresses.setLong(1, dcId);
+                        try (ResultSet selectedMacAdresses = selectMacAdresses.executeQuery();) {
+                            if (!selectedMacAdresses.next()) {
+                                throw new CloudRuntimeException("Unable to get mac address for data center " + dcId);
+                            }
+                            long mac = selectedMacAdresses.getLong(1);
+                            try (PreparedStatement updateDataCenter = conn.prepareStatement("UPDATE data_center SET mac_address=mac_address+1 WHERE id = ?");) {
+                                updateDataCenter.setLong(1, dcId);
+                                updateDataCenter.executeUpdate();
+                            }
+                            try (PreparedStatement updateUserIpAddress = conn.prepareStatement("UPDATE user_ip_address SET mac_address=? WHERE id=?");) {
+                                updateUserIpAddress.setLong(1, mac);
+                                updateUserIpAddress.setLong(2, (Long)allocatedIp[0]);
+                                updateUserIpAddress.executeUpdate();
+                            }
+                        }
+                    }
+                }
             }
-            long mac = rs.getLong(1);
-            rs.close();
-            pstmt.close();
-
-            pstmt = conn.prepareStatement("UPDATE data_center SET mac_address=mac_address+1 WHERE id = ?");
-            pstmt.setLong(1, dcId);
-            pstmt.executeUpdate();
-            pstmt.close();
-
-            pstmt = conn.prepareStatement("UPDATE user_ip_address SET mac_address=? WHERE id=?");
-            pstmt.setLong(1, mac);
-            pstmt.setLong(2, (Long)allocatedIp[0]);
-            pstmt.executeUpdate();
-            pstmt.close();
         }
     }
 
     protected void upgradePublicUserIpAddress(Connection conn, long dcId, long networkId, String vlanType) throws SQLException {
         s_logger.debug("Upgrading user ip address for data center " + dcId + " network " + networkId + " vlan type " + vlanType);
-        PreparedStatement pstmt =
-            conn.prepareStatement("UPDATE user_ip_address INNER JOIN vlan ON user_ip_address.vlan_db_id=vlan.id SET source_network_id=? WHERE user_ip_address.data_center_id=? AND vlan.vlan_type=?");
-        pstmt.setLong(1, networkId);
-        pstmt.setLong(2, dcId);
-        pstmt.setString(3, vlanType);
-        pstmt.executeUpdate();
-        pstmt.close();
-
-        pstmt = conn.prepareStatement("UPDATE vlan SET network_id = ? WHERE data_center_id=? AND vlan_type=?");
-        pstmt.setLong(1, networkId);
-        pstmt.setLong(2, dcId);
-        pstmt.setString(3, vlanType);
-        pstmt.executeUpdate();
-        pstmt.close();
-
-        pstmt =
-            conn.prepareStatement("SELECT user_ip_address.id, user_ip_address.public_ip_address, user_ip_address.account_id, user_ip_address.allocated FROM user_ip_address INNER JOIN vlan ON vlan.id=user_ip_address.vlan_db_id WHERE user_ip_address.data_center_id = ? AND vlan.vlan_type='VirtualNetwork'");
-        pstmt.setLong(1, dcId);
-        ResultSet rs = pstmt.executeQuery();
-        ArrayList<Object[]> allocatedIps = new ArrayList<Object[]>();
-        while (rs.next()) {
-            Object[] ip = new Object[10];
-            ip[0] = rs.getLong(1); // id
-            ip[1] = rs.getString(2); // ip address
-            ip[2] = rs.getLong(3); // account id
-            ip[3] = rs.getDate(4); // allocated
-            allocatedIps.add(ip);
+        try (PreparedStatement pstmt =
+            conn.prepareStatement("UPDATE user_ip_address INNER JOIN vlan ON user_ip_address.vlan_db_id=vlan.id SET source_network_id=? WHERE user_ip_address.data_center_id=? AND vlan.vlan_type=?");) {
+            pstmt.setLong(1, networkId);
+            pstmt.setLong(2, dcId);
+            pstmt.setString(3, vlanType);
+            pstmt.executeUpdate();
         }
-        rs.close();
-        pstmt.close();
-
-        for (Object[] allocatedIp : allocatedIps) {
-            pstmt = conn.prepareStatement("SELECT mac_address FROM data_center WHERE id = ?");
-            pstmt.setLong(1, dcId);
-            rs = pstmt.executeQuery();
-            if (!rs.next()) {
-                throw new CloudRuntimeException("Unable to get mac address for data center " + dcId);
-            }
-            long mac = rs.getLong(1);
-            rs.close();
-            pstmt.close();
-
-            pstmt = conn.prepareStatement("UPDATE data_center SET mac_address=mac_address+1 WHERE id = ?");
-            pstmt.setLong(1, dcId);
+        try (PreparedStatement pstmt = conn.prepareStatement("UPDATE vlan SET network_id = ? WHERE data_center_id=? AND vlan_type=?");) {
+            pstmt.setLong(1, networkId);
+            pstmt.setLong(2, dcId);
+            pstmt.setString(3, vlanType);
             pstmt.executeUpdate();
-            pstmt.close();
-
-            Long associatedNetworkId = null;
-            if (allocatedIp[3] != null && allocatedIp[2] != null) {
-                pstmt = conn.prepareStatement("SELECT id FROM networks WHERE data_center_id=? AND account_id=?");
-                pstmt.setLong(1, dcId);
-                pstmt.setLong(2, (Long)allocatedIp[2]);
-                rs = pstmt.executeQuery();
-                if (!rs.next()) {
-                    throw new CloudRuntimeException("Unable to find a network for account " + allocatedIp[2] + " in dc " + dcId);
+        }
+        try (PreparedStatement pstmt =
+            conn.prepareStatement("SELECT user_ip_address.id, user_ip_address.public_ip_address, user_ip_address.account_id, user_ip_address.allocated FROM user_ip_address INNER JOIN vlan ON vlan.id=user_ip_address.vlan_db_id WHERE user_ip_address.data_center_id = ? AND vlan.vlan_type='VirtualNetwork'");) {
+            pstmt.setLong(1, dcId);
+            try (ResultSet rs = pstmt.executeQuery();) {
+                ArrayList<Object[]> allocatedIps = new ArrayList<Object[]>();
+                while (rs.next()) {
+                    Object[] ip = new Object[10];
+                    ip[0] = rs.getLong(1); // id
+                    ip[1] = rs.getString(2); // ip address
+                    ip[2] = rs.getLong(3); // account id
+                    ip[3] = rs.getDate(4); // allocated
+                    allocatedIps.add(ip);
+                }
+                for (Object[] allocatedIp : allocatedIps) {
+                    try (PreparedStatement selectDataCenterMac = conn.prepareStatement("SELECT mac_address FROM data_center WHERE id = ?");) {
+                        selectDataCenterMac.setLong(1, dcId);
+                        try (ResultSet selectedDataCenterMac = selectDataCenterMac.executeQuery();) {
+                            if (!selectedDataCenterMac.next()) {
+                                throw new CloudRuntimeException("Unable to get mac address for data center " + dcId);
+                            }
+                            long mac = selectedDataCenterMac.getLong(1);
+                            try (PreparedStatement updateDataCenter = conn.prepareStatement("UPDATE data_center SET mac_address=mac_address+1 WHERE id = ?");) {
+                                updateDataCenter.setLong(1, dcId);
+                                updateDataCenter.executeUpdate();
+                            }
+                            Long associatedNetworkId = null;
+                            if (allocatedIp[3] != null && allocatedIp[2] != null) {
+                                try (PreparedStatement selectNetworks = conn.prepareStatement("SELECT id FROM networks WHERE data_center_id=? AND account_id=?");) {
+                                    selectNetworks.setLong(1, dcId);
+                                    selectNetworks.setLong(2, (Long)allocatedIp[2]);
+                                    try (ResultSet selectedNetworks = selectNetworks.executeQuery();) {
+                                        if (!selectedNetworks.next()) {
+                                            throw new CloudRuntimeException("Unable to find a network for account " + allocatedIp[2] + " in dc " + dcId);
+                                        }
+                                        associatedNetworkId = selectedNetworks.getLong(1);
+                                    }
+                                }
+                            }
+                            try (PreparedStatement updateUserIpAddress = conn.prepareStatement("UPDATE user_ip_address SET mac_address=?, network_id=? WHERE id=?");) {
+                                updateUserIpAddress.setLong(1, mac);
+                                if (associatedNetworkId != null) {
+                                    updateUserIpAddress.setLong(2, associatedNetworkId);
+                                } else {
+                                    updateUserIpAddress.setObject(2, null);
+                                }
+                                updateUserIpAddress.setLong(3, (Long)allocatedIp[0]);
+                                updateUserIpAddress.executeUpdate();
+                            }
+                        }
+                    }
                 }
-                associatedNetworkId = rs.getLong(1);
-                rs.close();
-                pstmt.close();
-            }
-            pstmt = conn.prepareStatement("UPDATE user_ip_address SET mac_address=?, network_id=? WHERE id=?");
-            pstmt.setLong(1, mac);
-            if (associatedNetworkId != null) {
-                pstmt.setLong(2, associatedNetworkId);
-            } else {
-                pstmt.setObject(2, null);
             }
-            pstmt.setLong(3, (Long)allocatedIp[0]);
-            pstmt.executeUpdate();
-            pstmt.close();
         }
-
     }
 
     protected void upgradeDataCenter(Connection conn) {