Skip to content

Commit 3fd5680

Browse files
committed
Merge remote-tracking branch 'apache/4.19'
2 parents 2959cc6 + c7626eb commit 3fd5680

File tree

2 files changed

+56
-19
lines changed

2 files changed

+56
-19
lines changed

server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2544,25 +2544,7 @@ protected void finalizeNetworkRulesForNetwork(final Commands cmds, final DomainR
25442544
}
25452545
}
25462546

2547-
final List<LoadBalancerVO> lbs = _loadBalancerDao.listByNetworkIdAndScheme(guestNetworkId, Scheme.Public);
2548-
final List<LoadBalancingRule> lbRules = new ArrayList<LoadBalancingRule>();
2549-
if (_networkModel.isProviderSupportServiceInNetwork(guestNetworkId, Service.Lb, provider)) {
2550-
// Re-apply load balancing rules
2551-
for (final LoadBalancerVO lb : lbs) {
2552-
final List<LbDestination> dstList = _lbMgr.getExistingDestinations(lb.getId());
2553-
final List<LbStickinessPolicy> policyList = _lbMgr.getStickinessPolicies(lb.getId());
2554-
final List<LbHealthCheckPolicy> hcPolicyList = _lbMgr.getHealthCheckPolicies(lb.getId());
2555-
final Ip sourceIp = _networkModel.getPublicIpAddress(lb.getSourceIpAddressId()).getAddress();
2556-
final LbSslCert sslCert = _lbMgr.getLbSslCert(lb.getId());
2557-
final LoadBalancingRule loadBalancing = new LoadBalancingRule(lb, dstList, policyList, hcPolicyList, sourceIp, sslCert, lb.getLbProtocol());
2558-
lbRules.add(loadBalancing);
2559-
}
2560-
}
2561-
2562-
logger.debug("Found " + lbRules.size() + " load balancing rule(s) to apply as a part of domR " + router + " start.");
2563-
if (!lbRules.isEmpty()) {
2564-
_commandSetupHelper.createApplyLoadBalancingRulesCommands(lbRules, router, cmds, guestNetworkId);
2565-
}
2547+
createApplyLoadBalancingRulesCommands(cmds, router, provider, guestNetworkId);
25662548
}
25672549
// Reapply dhcp and dns configuration.
25682550
final Network guestNetwork = _networkDao.findById(guestNetworkId);
@@ -2589,6 +2571,35 @@ protected void finalizeNetworkRulesForNetwork(final Commands cmds, final DomainR
25892571
}
25902572
}
25912573

2574+
private void createApplyLoadBalancingRulesCommands(final Commands cmds, final DomainRouterVO router, final Provider provider, final Long guestNetworkId) {
2575+
if (router.getVpcId() != null) {
2576+
return;
2577+
}
2578+
final List<LoadBalancerVO> lbs = _loadBalancerDao.listByNetworkIdAndScheme(guestNetworkId, Scheme.Public);
2579+
final List<LoadBalancingRule> lbRules = new ArrayList<LoadBalancingRule>();
2580+
if (_networkModel.isProviderSupportServiceInNetwork(guestNetworkId, Service.Lb, provider)) {
2581+
// Re-apply load balancing rules
2582+
createLoadBalancingRulesList(lbRules, lbs);
2583+
}
2584+
2585+
logger.debug("Found " + lbRules.size() + " load balancing rule(s) to apply as a part of domR " + router + " start.");
2586+
if (!lbRules.isEmpty()) {
2587+
_commandSetupHelper.createApplyLoadBalancingRulesCommands(lbRules, router, cmds, guestNetworkId);
2588+
}
2589+
}
2590+
2591+
protected void createLoadBalancingRulesList(List<LoadBalancingRule> lbRules, final List<LoadBalancerVO> lbs) {
2592+
for (final LoadBalancerVO lb : lbs) {
2593+
final List<LbDestination> dstList = _lbMgr.getExistingDestinations(lb.getId());
2594+
final List<LbStickinessPolicy> policyList = _lbMgr.getStickinessPolicies(lb.getId());
2595+
final List<LbHealthCheckPolicy> hcPolicyList = _lbMgr.getHealthCheckPolicies(lb.getId());
2596+
final Ip sourceIp = _networkModel.getPublicIpAddress(lb.getSourceIpAddressId()).getAddress();
2597+
final LbSslCert sslCert = _lbMgr.getLbSslCert(lb.getId());
2598+
final LoadBalancingRule loadBalancing = new LoadBalancingRule(lb, dstList, policyList, hcPolicyList, sourceIp, sslCert, lb.getLbProtocol());
2599+
lbRules.add(loadBalancing);
2600+
}
2601+
}
2602+
25922603
private void createDefaultEgressFirewallRule(final List<FirewallRule> rules, final long networkId) {
25932604
final NetworkVO network = _networkDao.findById(networkId);
25942605
final NetworkOfferingVO offering = _networkOfferingDao.findById(network.getNetworkOfferingId());

server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,14 @@
6666
import com.cloud.network.VirtualRouterProvider;
6767
import com.cloud.network.addr.PublicIp;
6868
import com.cloud.network.dao.IPAddressVO;
69+
import com.cloud.network.dao.LoadBalancerDao;
70+
import com.cloud.network.dao.LoadBalancerVO;
6971
import com.cloud.network.dao.MonitoringServiceVO;
7072
import com.cloud.network.dao.NetworkVO;
7173
import com.cloud.network.dao.RemoteAccessVpnVO;
7274
import com.cloud.network.dao.Site2SiteVpnConnectionVO;
75+
import com.cloud.network.lb.LoadBalancingRule;
76+
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
7377
import com.cloud.network.vpc.NetworkACLItemDao;
7478
import com.cloud.network.vpc.NetworkACLItemVO;
7579
import com.cloud.network.vpc.NetworkACLManager;
@@ -134,6 +138,8 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
134138
protected NetworkDao networkDao;
135139
@Inject
136140
protected VpcDao vpcDao;
141+
@Inject
142+
private LoadBalancerDao loadBalancerDao;
137143

138144
@Override
139145
public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
@@ -531,12 +537,32 @@ public boolean finalizeCommandsOnStart(final Commands cmds, final VirtualMachine
531537
cmds.addCommand(finishCmd);
532538
}
533539

540+
createApplyLoadBalancingRulesCommandsForVpc(cmds, domainRouterVO, provider, guestNics);
541+
534542
// Add network usage commands
535543
cmds.addCommands(usageCmds);
536544
}
537545
return true;
538546
}
539547

548+
private void createApplyLoadBalancingRulesCommandsForVpc(final Commands cmds, DomainRouterVO domainRouterVO, Provider provider,
549+
List<Pair<Nic, Network>> guestNics) {
550+
final List<LoadBalancerVO> lbs = loadBalancerDao.listByVpcIdAndScheme(domainRouterVO.getVpcId(), Scheme.Public);
551+
final List<LoadBalancingRule> lbRules = new ArrayList<>();
552+
createLoadBalancingRulesList(lbRules, lbs);
553+
logger.debug("Found " + lbRules.size() + " load balancing rule(s) to apply as a part of VPC VR " + domainRouterVO + " start.");
554+
if (!lbRules.isEmpty()) {
555+
for (final Pair<Nic, Network> nicNtwk : guestNics) {
556+
final Nic guestNic = nicNtwk.first();
557+
final long guestNetworkId = guestNic.getNetworkId();
558+
if (_networkModel.isProviderSupportServiceInNetwork(guestNetworkId, Service.Lb, provider)) {
559+
_commandSetupHelper.createApplyLoadBalancingRulesCommands(lbRules, domainRouterVO, cmds, guestNetworkId);
560+
break;
561+
}
562+
}
563+
}
564+
}
565+
540566
@Override
541567
protected List<MonitoringServiceVO> getDefaultServicesToMonitor(NetworkVO network) {
542568
if (network.getTrafficType() == TrafficType.Public) {

0 commit comments

Comments
 (0)