You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mu...@apache.org on 2013/02/12 10:56:47 UTC

git commit: refs/heads/4.1 - CLOUDSTACK-1241: Network apply rules logic is broken

Updated Branches:
  refs/heads/4.1 0364a4a34 -> 513f8b98e


CLOUDSTACK-1241: Network apply rules logic is broken

added logic to check if the network element is configured service
provider for the network before applying rules


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

Branch: refs/heads/4.1
Commit: 513f8b98e9b7818d0b37c9641d9021b77a0cfc45
Parents: 0364a4a
Author: Murali Reddy <mu...@citrix.com>
Authored: Tue Feb 12 15:25:07 2013 +0530
Committer: Murali Reddy <mu...@citrix.com>
Committed: Tue Feb 12 15:25:07 2013 +0530

----------------------------------------------------------------------
 .../network/firewall/FirewallManagerImpl.java      |   20 +++++++++++++++
 .../network/lb/LoadBalancingRulesManagerImpl.java  |    5 +++
 2 files changed, 25 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/513f8b98/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
index d3b4c0b..0d17ba7 100644
--- a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
+++ b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
@@ -536,12 +536,22 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
         switch (purpose){
         case Firewall:
             for (FirewallServiceProvider fwElement: _firewallElements) {
+                Network.Provider provider = fwElement.getProvider();
+                boolean  isFwProvider = _networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Firewall, provider);
+                if (!isFwProvider) {
+                    continue;
+                }
                 handled = fwElement.applyFWRules(network, rules);
                 if (handled)
                     break;
             }
         case PortForwarding:
             for (PortForwardingServiceProvider element: _pfElements) {
+                Network.Provider provider = element.getProvider();
+                boolean  isPfProvider = _networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.PortForwarding, provider);
+                if (!isPfProvider) {
+                    continue;
+                }
                 handled = element.applyPFRules(network, (List<PortForwardingRule>) rules);
                 if (handled)
                     break;
@@ -549,6 +559,11 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
             break;
         case StaticNat:
             for (StaticNatServiceProvider element: _staticNatElements) {
+                Network.Provider provider = element.getProvider();
+                boolean  isSnatProvider = _networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.StaticNat, provider);
+                if (!isSnatProvider) {
+                    continue;
+                }
                 handled = element.applyStaticNats(network, (List<? extends StaticNat>) rules);
                 if (handled)
                     break;
@@ -556,6 +571,11 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
             break;
         case NetworkACL:
             for (NetworkACLServiceProvider element: _networkAclElements) {
+                Network.Provider provider = element.getProvider();
+                boolean  isAclProvider = _networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.NetworkACL, provider);
+                if (!isAclProvider) {
+                    continue;
+                }
                 handled = element.applyNetworkACLs(network, rules);
                 if (handled)
                     break;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/513f8b98/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
index 85e850c..531a428 100755
--- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
+++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
@@ -1158,6 +1158,11 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
         assert(purpose == Purpose.LoadBalancing): "LB Manager asked to handle non-LB rules";
         boolean handled = false;
         for (LoadBalancingServiceProvider lbElement: _lbProviders) {
+            Provider provider = lbElement.getProvider();
+            boolean  isLbProvider = _networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Lb, provider);
+            if (!isLbProvider) {
+                continue;
+            }
             handled = lbElement.applyLBRules(network, (List<LoadBalancingRule>) rules);
             if (handled)
                 break;