CLOUDSTACK-1208: Failed to shutdown guest network Firewall manager was being used instead of LoadBalancingRules manager while applying the load balancer rules in shut down network. Changing it to LoadBalancingRules manager.
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/68c110cb Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/68c110cb Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/68c110cb Branch: refs/heads/vim51_win8 Commit: 68c110cb182ce548556b308be6d75e3b07ac82a8 Parents: b59a18d Author: Murali Reddy <[email protected]> Authored: Fri Feb 8 18:50:18 2013 +0530 Committer: Murali Reddy <[email protected]> Committed: Fri Feb 8 18:54:15 2013 +0530 ---------------------------------------------------------------------- .../src/com/cloud/network/NetworkManagerImpl.java | 4 ++-- .../network/lb/LoadBalancingRulesManager.java | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/68c110cb/server/src/com/cloud/network/NetworkManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 0712820..ec4d26e 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -2994,6 +2994,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L private boolean shutdownNetworkResources(long networkId, Account caller, long callerUserId) { // This method cleans up network rules on the backend w/o touching them in the DB boolean success = true; + Network network = _networksDao.findById(networkId); // Mark all PF rules as revoked and apply them on the backend (not in the DB) List<PortForwardingRuleVO> pfRules = _portForwardingRulesDao.listByNetwork(networkId); @@ -3066,7 +3067,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L } try { - if (!_firewallMgr.applyRules(lbRules, true, false)) { + if (!_lbMgr.applyRules(network, Purpose.LoadBalancing, lbs)) { s_logger.warn("Failed to cleanup lb rules as a part of shutdownNetworkRules"); success = false; } @@ -3145,7 +3146,6 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L } // Get all ip addresses, mark as releasing and release them on the backend - Network network = _networksDao.findById(networkId); List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(networkId, null); List<PublicIp> publicIpsToRelease = new ArrayList<PublicIp>(); if (userIps != null && !userIps.isEmpty()) { http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/68c110cb/server/src/com/cloud/network/lb/LoadBalancingRulesManager.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManager.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManager.java index c9b3f93..9d7d22f 100644 --- a/server/src/com/cloud/network/lb/LoadBalancingRulesManager.java +++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManager.java @@ -16,16 +16,18 @@ // under the License. package com.cloud.network.lb; -import java.util.List; - -import org.apache.cloudstack.api.command.user.loadbalancer.CreateLoadBalancerRuleCmd; import com.cloud.exception.NetworkRuleConflictException; import com.cloud.exception.ResourceUnavailableException; +import com.cloud.network.Network; import com.cloud.network.lb.LoadBalancingRule.LbDestination; import com.cloud.network.lb.LoadBalancingRule.LbStickinessPolicy; +import com.cloud.network.rules.FirewallRule; import com.cloud.network.rules.LbStickinessMethod; import com.cloud.network.rules.LoadBalancer; import com.cloud.user.Account; +import org.apache.cloudstack.api.command.user.loadbalancer.CreateLoadBalancerRuleCmd; + +import java.util.List; public interface LoadBalancingRulesManager extends LoadBalancingRulesService { @@ -43,7 +45,7 @@ public interface LoadBalancingRulesManager extends LoadBalancingRulesService { * @return true if removal is successful */ boolean removeVmFromLoadBalancers(long vmId); - + boolean applyRules(Network network, FirewallRule.Purpose purpose, List<? extends FirewallRule> rules) throws ResourceUnavailableException ; boolean applyLoadBalancersForNetwork(long networkId) throws ResourceUnavailableException; String getLBCapability(long networkid, String capabilityName); boolean configureLbAutoScaleVmGroup(long vmGroupid, String currentState) throws ResourceUnavailableException;
