Updated Branches:
  refs/heads/internallb ed50caa01 -> 63bb98ebe

InternalLb: DB upgrade - update existing physical networks with InternalLbVm 
provider


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

Branch: refs/heads/internallb
Commit: ca1c313c2901a2ce1e7e6e3ce3a566bbf4c817b4
Parents: ed50caa
Author: Alena Prokharchyk <[email protected]>
Authored: Mon Apr 29 17:58:45 2013 -0700
Committer: Alena Prokharchyk <[email protected]>
Committed: Mon Apr 29 17:58:45 2013 -0700

----------------------------------------------------------------------
 .../src/com/cloud/upgrade/dao/Upgrade410to420.java |   51 +++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca1c313c/server/src/com/cloud/upgrade/dao/Upgrade410to420.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/upgrade/dao/Upgrade410to420.java 
b/server/src/com/cloud/upgrade/dao/Upgrade410to420.java
index 7e07245..3a164c4 100644
--- a/server/src/com/cloud/upgrade/dao/Upgrade410to420.java
+++ b/server/src/com/cloud/upgrade/dao/Upgrade410to420.java
@@ -68,6 +68,7 @@ public class Upgrade410to420 implements DbUpgrade {
         addEgressFwRulesForSRXGuestNw(conn);
         upgradeEIPNetworkOfferings(conn);
         upgradeDefaultVpcOffering(conn);
+        upgradePhysicalNtwksWithInternalLbProvider(conn);
     }
        
        private void updateSystemVmTemplates(Connection conn) {
@@ -435,4 +436,54 @@ public class Upgrade410to420 implements DbUpgrade {
             }
         }
     }
+    
+    
+    private void upgradePhysicalNtwksWithInternalLbProvider(Connection conn) {
+
+        PreparedStatement pstmt = null;
+        ResultSet rs = null;
+
+        try {
+            pstmt = conn.prepareStatement("SELECT id FROM 
`cloud`.`physical_network` where removed is null");
+            rs = pstmt.executeQuery();
+            while (rs.next()) {
+                long pNtwkId = rs.getLong(1);
+                String uuid = UUID.randomUUID().toString();
+                //Add internal LB VM to the list of physical network service 
providers
+                pstmt = conn.prepareStatement("INSERT INTO 
`cloud`.`physical_network_service_providers` " +
+                               "(uuid, physical_network_id, provider_name, 
state, load_balance_service_provided, destination_physical_network_id)" +
+                               " VALUES (?, ?, 'InternalLbVm', 'Enabled', 1, 
0)");
+                pstmt.setString(1, uuid);
+                pstmt.setLong(2, pNtwkId);
+                pstmt.executeUpdate();
+                
+                //Add internal lb vm to the list of physical network elements
+                PreparedStatement pstmt1 = conn.prepareStatement("SELECT id 
FROM `cloud`.`physical_network_service_providers`" +
+                               " WHERE physical_network_id=? AND 
provider_name='InternalLbVm'");
+                ResultSet rs1 = pstmt1.executeQuery();
+                while (rs1.next()) {
+                    long providerId = rs1.getLong(1);
+                    uuid = UUID.randomUUID().toString();
+                    pstmt1 = conn.prepareStatement("INSERT INTO 
`cloud`.`virtual_router_providers` (nsp_id, uuid, type, enabled) VALUES (?, ?, 
'InternalLbVm', 1)");
+                    pstmt1.setLong(1, providerId);
+                    pstmt1.setString(2, uuid);
+                    pstmt1.executeUpdate();
+                }
+            }
+            
+        } catch (SQLException e) {
+            throw new CloudRuntimeException("Unable existing physical networks 
with internal lb provider", e);
+        } finally {
+            try {
+                if (rs != null) {
+                    rs.close();
+                }
+                if (pstmt != null) {
+                    pstmt.close();
+                }
+            } catch (SQLException e) {
+            }
+        }
+        
+    }
 }

Reply via email to