You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2012/07/25 01:11:41 UTC

[2/38] git commit: VPC: CS-15681 - execute VPC related methods only when router is a vpc router

VPC: CS-15681 - execute VPC related methods only when router is a vpc router

Conflicts:

	server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java


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

Branch: refs/heads/vpc
Commit: 119e4e744367cc9d415500191d26cb902571f256
Parents: 12ee881
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Tue Jul 24 16:06:47 2012 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Tue Jul 24 16:12:13 2012 -0700

----------------------------------------------------------------------
 .../network/VpcVirtualNetworkApplianceService.java |    2 +-
 .../network/element/VpcVirtualRouterElement.java   |    4 +-
 .../VpcVirtualNetworkApplianceManagerImpl.java     |   29 ++++++++++-----
 3 files changed, 22 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/119e4e74/api/src/com/cloud/network/VpcVirtualNetworkApplianceService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/VpcVirtualNetworkApplianceService.java b/api/src/com/cloud/network/VpcVirtualNetworkApplianceService.java
index 81df02f..b597463 100644
--- a/api/src/com/cloud/network/VpcVirtualNetworkApplianceService.java
+++ b/api/src/com/cloud/network/VpcVirtualNetworkApplianceService.java
@@ -43,7 +43,7 @@ public interface VpcVirtualNetworkApplianceService {
      * @throws ConcurrentOperationException
      * @throws ResourceUnavailableException
      */
-    boolean removeRouterFromGuestNetwork(VirtualRouter router, Network network, boolean isRedundant) 
+    boolean removeVpcRouterFromGuestNetwork(VirtualRouter router, Network network, boolean isRedundant) 
             throws ConcurrentOperationException, ResourceUnavailableException;
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/119e4e74/server/src/com/cloud/network/element/VpcVirtualRouterElement.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java
index 78d1ff4..0e71352 100644
--- a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java
+++ b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java
@@ -239,7 +239,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc
                 continue;
             }
             //2) Call unplugNics in the network service
-            success = success && _vpcRouterMgr.removeRouterFromGuestNetwork(router, network, false);
+            success = success && _vpcRouterMgr.removeVpcRouterFromGuestNetwork(router, network, false);
             if (!success) {
                 s_logger.warn("Failed to unplug nic in network " + network + " for virtual router " + router);
             } else {
@@ -267,7 +267,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc
                 continue;
             }
             //2) Call unplugNics in the network service
-            success = success && _vpcRouterMgr.removeRouterFromGuestNetwork(router, config, false);
+            success = success && _vpcRouterMgr.removeVpcRouterFromGuestNetwork(router, config, false);
             if (!success) {
                 s_logger.warn("Failed to unplug nic in network " + config + " for virtual router " + router);
             } else {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/119e4e74/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
index b9d972b..2560aec 100644
--- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
@@ -76,8 +76,6 @@ import com.cloud.network.PhysicalNetworkServiceProvider;
 import com.cloud.network.PublicIpAddress;
 import com.cloud.network.Site2SiteCustomerGatewayVO;
 import com.cloud.network.Site2SiteVpnConnection;
-import com.cloud.network.Site2SiteVpnConnectionVO;
-import com.cloud.network.Site2SiteVpnGateway;
 import com.cloud.network.Site2SiteVpnGatewayVO;
 import com.cloud.network.VirtualRouterProvider;
 import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType;
@@ -260,7 +258,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
         } finally {
             if (!result) {
                 s_logger.debug("Removing the router " + router + " from network " + network + " as a part of cleanup");
-                if (removeRouterFromGuestNetwork(router, network, isRedundant)) {
+                if (removeVpcRouterFromGuestNetwork(router, network, isRedundant)) {
                     s_logger.debug("Removed the router " + router + " from network " + network + " as a part of cleanup");
                 } else {
                     s_logger.warn("Failed to remove the router " + router + " from network " + network + " as a part of cleanup");
@@ -274,7 +272,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
     }
 
     @Override
-    public boolean removeRouterFromGuestNetwork(VirtualRouter router, Network network, boolean isRedundant) 
+    public boolean removeVpcRouterFromGuestNetwork(VirtualRouter router, Network network, boolean isRedundant) 
             throws ConcurrentOperationException, ResourceUnavailableException {
         if (network.getTrafficType() != TrafficType.Guest) {
             s_logger.warn("Network " + network + " is not of type " + TrafficType.Guest);
@@ -542,6 +540,10 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
         //only one router is supported in VPC now
         VirtualRouter router = routers.get(0);
         
+        if (router.getVpcId() == null) {
+            return super.associatePublicIP(network, ipAddress, routers);
+        }
+        
         Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>> nicsToChange = getNicsToChangeOnRouter(ipAddress, router);
         Map<String, PublicIpAddress> nicsToPlug = nicsToChange.first();
         Map<String, PublicIpAddress> nicsToUnplug = nicsToChange.second();
@@ -850,12 +852,14 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
         
         super.finalizeNetworkRulesForNetwork(cmds, router, provider, guestNetworkId);
         
-        if (_networkMgr.isProviderSupportServiceInNetwork(guestNetworkId, Service.NetworkACL, Provider.VPCVirtualRouter)) {
-            List<? extends FirewallRule> networkACLs = _networkACLMgr.listNetworkACLs(guestNetworkId);
-            s_logger.debug("Found " + networkACLs.size() + " network ACLs to apply as a part of VPC VR " + router 
-                    + " start for guest network id=" + guestNetworkId);
-            if (!networkACLs.isEmpty()) {
-                createNetworkACLsCommands(networkACLs, router, cmds, guestNetworkId);
+        if (router.getVpcId() == null) {
+            if (_networkMgr.isProviderSupportServiceInNetwork(guestNetworkId, Service.NetworkACL, Provider.VPCVirtualRouter)) {
+                List<? extends FirewallRule> networkACLs = _networkACLMgr.listNetworkACLs(guestNetworkId);
+                s_logger.debug("Found " + networkACLs.size() + " network ACLs to apply as a part of VPC VR " + router 
+                        + " start for guest network id=" + guestNetworkId);
+                if (!networkACLs.isEmpty()) {
+                    createNetworkACLsCommands(networkACLs, router, cmds, guestNetworkId);
+                }
             }
         }
     }
@@ -962,6 +966,11 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
     protected void finalizeIpAssocForNetwork(Commands cmds, VirtualRouter router, Provider provider, 
             Long guestNetworkId) {
         
+        if (router.getVpcId() == null) {
+            super.finalizeIpAssocForNetwork(cmds, router, provider, guestNetworkId);
+            return;
+        }
+        
         ArrayList<? extends PublicIpAddress> publicIps = getPublicIpsToApply(router, provider, guestNetworkId, IpAddress.State.Releasing);
         
         if (publicIps != null && !publicIps.isEmpty()) {