You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by pr...@apache.org on 2013/02/20 20:24:15 UTC

git commit: refs/heads/master - CLOUDSTACK-1331: Upgrade fails for a 2.2.14 Zone having multiple guest networks using network_tags and Public Vlan

Updated Branches:
  refs/heads/master 476ad0be6 -> ec1f48a4b


CLOUDSTACK-1331: Upgrade fails for a 2.2.14 Zone having multiple guest networks using network_tags and Public Vlan

Changes:
-We need to update the physical_network_id for public vlans.
-Physical network ID should be retrieved from the network if present.


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

Branch: refs/heads/master
Commit: ec1f48a4b2c31b1f7c3854b0b2ada5322a18e42f
Parents: 476ad0b
Author: Prachi Damle <pr...@cloud.com>
Authored: Wed Feb 20 11:22:28 2013 -0800
Committer: Prachi Damle <pr...@cloud.com>
Committed: Wed Feb 20 11:23:32 2013 -0800

----------------------------------------------------------------------
 .../network/guru/NiciraNvpGuestNetworkGuru.java    |    7 ++++++-
 .../com/cloud/network/guru/GuestNetworkGuru.java   |    7 ++++++-
 .../src/com/cloud/upgrade/dao/Upgrade2214to30.java |   11 +++++++++++
 3 files changed, 23 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/ec1f48a4/plugins/network-elements/nicira-nvp/src/com/cloud/network/guru/NiciraNvpGuestNetworkGuru.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/guru/NiciraNvpGuestNetworkGuru.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/guru/NiciraNvpGuestNetworkGuru.java
index 3ba6167..b78d165 100644
--- a/plugins/network-elements/nicira-nvp/src/com/cloud/network/guru/NiciraNvpGuestNetworkGuru.java
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/guru/NiciraNvpGuestNetworkGuru.java
@@ -151,7 +151,12 @@ public class NiciraNvpGuestNetworkGuru extends GuestNetworkGuru {
         long dcId = dest.getDataCenter().getId();
 
         //get physical network id
-        long physicalNetworkId = _networkModel.findPhysicalNetworkId(dcId, offering.getTags(), offering.getTrafficType());
+        Long physicalNetworkId = network.getPhysicalNetworkId();
+        
+        // physical network id can be null in Guest Network in Basic zone, so locate the physical network
+        if (physicalNetworkId == null) {        
+            physicalNetworkId = _networkModel.findPhysicalNetworkId(dcId, offering.getTags(), offering.getTrafficType());
+        }
 
         NetworkVO implemented = new NetworkVO(network.getTrafficType(), network.getMode(), network.getBroadcastDomainType(), network.getNetworkOfferingId(), State.Allocated,
                 network.getDataCenterId(), physicalNetworkId);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/ec1f48a4/server/src/com/cloud/network/guru/GuestNetworkGuru.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/guru/GuestNetworkGuru.java b/server/src/com/cloud/network/guru/GuestNetworkGuru.java
index ab8a069..cc79d30 100755
--- a/server/src/com/cloud/network/guru/GuestNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/GuestNetworkGuru.java
@@ -314,7 +314,12 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur
         long dcId = dest.getDataCenter().getId();
 
         //get physical network id
-        long physicalNetworkId = _networkModel.findPhysicalNetworkId(dcId, offering.getTags(), offering.getTrafficType());
+        Long physicalNetworkId = network.getPhysicalNetworkId();
+        
+       // physical network id can be null in Guest Network in Basic zone, so locate the physical network
+       if (physicalNetworkId == null) {        
+           physicalNetworkId = _networkModel.findPhysicalNetworkId(dcId, offering.getTags(), offering.getTrafficType());
+       }
 
         NetworkVO implemented = new NetworkVO(network.getTrafficType(), network.getMode(), 
                 network.getBroadcastDomainType(), network.getNetworkOfferingId(), State.Allocated,

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/ec1f48a4/server/src/com/cloud/upgrade/dao/Upgrade2214to30.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/upgrade/dao/Upgrade2214to30.java b/server/src/com/cloud/upgrade/dao/Upgrade2214to30.java
index 88370c1..c0f827e 100755
--- a/server/src/com/cloud/upgrade/dao/Upgrade2214to30.java
+++ b/server/src/com/cloud/upgrade/dao/Upgrade2214to30.java
@@ -266,8 +266,19 @@ public class Upgrade2214to30 extends Upgrade30xBase implements DbUpgrade {
                             addPhysicalNtwk_To_Ntwk_IP_Vlan(conn, physicalNetworkId,networkId);
                         }
                         pstmt3.close();
+
+                        // add the reference to this physical network for the default public network entries in vlan / user_ip_address tables
                         // add first physicalNetworkId to op_dc_vnet_alloc for this zone - just a placeholder since direct networking dont need this
                         if(isFirstPhysicalNtwk){
+                            s_logger.debug("Adding PhysicalNetwork to default Public network entries in vlan and user_ip_address");
+                            pstmt3 = conn.prepareStatement("SELECT id FROM `cloud`.`networks` where traffic_type = 'Public' and data_center_id = "+zoneId);
+                            ResultSet rsPubNet = pstmt3.executeQuery();
+                            if(rsPubNet.next()){
+                                Long publicNetworkId = rsPubNet.getLong(1);
+                                addPhysicalNtwk_To_Ntwk_IP_Vlan(conn, physicalNetworkId,publicNetworkId);
+                            }
+                            pstmt3.close();
+                            
                             s_logger.debug("Adding PhysicalNetwork to op_dc_vnet_alloc");
                             String updateVnet = "UPDATE `cloud`.`op_dc_vnet_alloc` SET physical_network_id = " + physicalNetworkId + " WHERE data_center_id = " + zoneId;
                             pstmtUpdate = conn.prepareStatement(updateVnet);