diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 07128204b02..ec4d26edf5b 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 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 userIps = _ipAddressDao.listByAssociatedNetwork(networkId, null); List publicIpsToRelease = new ArrayList(); if (userIps != null && !userIps.isEmpty()) { diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManager.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManager.java index c9b3f9336b8..9d7d22fdad7 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 rules) throws ResourceUnavailableException ; boolean applyLoadBalancersForNetwork(long networkId) throws ResourceUnavailableException; String getLBCapability(long networkid, String capabilityName); boolean configureLbAutoScaleVmGroup(long vmGroupid, String currentState) throws ResourceUnavailableException;