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;