Updated Branches: refs/heads/4.1 5d1769335 -> 69d24545c refs/heads/gslb 8f70ee08e -> 44e3e5ebe
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/69d24545 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/69d24545 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/69d24545 Branch: refs/heads/4.1 Commit: 69d24545c4f0e316dba534b6d5d99308795db6d4 Parents: 5d17693 Author: Murali Reddy <[email protected]> Authored: Fri Feb 8 18:50:18 2013 +0530 Committer: Murali Reddy <[email protected]> Committed: Fri Feb 8 18:50:18 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/69d24545/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 f24623e..8632342 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -2991,6 +2991,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); @@ -3063,7 +3064,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; } @@ -3142,7 +3143,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/69d24545/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;
