mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Merge remote-tracking branch 'apache/4.18' into 4.19
This commit is contained in:
commit
c7626ebfd6
@ -2546,25 +2546,7 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final List<LoadBalancerVO> lbs = _loadBalancerDao.listByNetworkIdAndScheme(guestNetworkId, Scheme.Public);
|
createApplyLoadBalancingRulesCommands(cmds, router, provider, guestNetworkId);
|
||||||
final List<LoadBalancingRule> lbRules = new ArrayList<LoadBalancingRule>();
|
|
||||||
if (_networkModel.isProviderSupportServiceInNetwork(guestNetworkId, Service.Lb, provider)) {
|
|
||||||
// Re-apply load balancing rules
|
|
||||||
for (final LoadBalancerVO lb : lbs) {
|
|
||||||
final List<LbDestination> dstList = _lbMgr.getExistingDestinations(lb.getId());
|
|
||||||
final List<LbStickinessPolicy> policyList = _lbMgr.getStickinessPolicies(lb.getId());
|
|
||||||
final List<LbHealthCheckPolicy> hcPolicyList = _lbMgr.getHealthCheckPolicies(lb.getId());
|
|
||||||
final Ip sourceIp = _networkModel.getPublicIpAddress(lb.getSourceIpAddressId()).getAddress();
|
|
||||||
final LbSslCert sslCert = _lbMgr.getLbSslCert(lb.getId());
|
|
||||||
final LoadBalancingRule loadBalancing = new LoadBalancingRule(lb, dstList, policyList, hcPolicyList, sourceIp, sslCert, lb.getLbProtocol());
|
|
||||||
lbRules.add(loadBalancing);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
s_logger.debug("Found " + lbRules.size() + " load balancing rule(s) to apply as a part of domR " + router + " start.");
|
|
||||||
if (!lbRules.isEmpty()) {
|
|
||||||
_commandSetupHelper.createApplyLoadBalancingRulesCommands(lbRules, router, cmds, guestNetworkId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Reapply dhcp and dns configuration.
|
// Reapply dhcp and dns configuration.
|
||||||
final Network guestNetwork = _networkDao.findById(guestNetworkId);
|
final Network guestNetwork = _networkDao.findById(guestNetworkId);
|
||||||
@ -2591,6 +2573,35 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createApplyLoadBalancingRulesCommands(final Commands cmds, final DomainRouterVO router, final Provider provider, final Long guestNetworkId) {
|
||||||
|
if (router.getVpcId() != null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
final List<LoadBalancerVO> lbs = _loadBalancerDao.listByNetworkIdAndScheme(guestNetworkId, Scheme.Public);
|
||||||
|
final List<LoadBalancingRule> lbRules = new ArrayList<LoadBalancingRule>();
|
||||||
|
if (_networkModel.isProviderSupportServiceInNetwork(guestNetworkId, Service.Lb, provider)) {
|
||||||
|
// Re-apply load balancing rules
|
||||||
|
createLoadBalancingRulesList(lbRules, lbs);
|
||||||
|
}
|
||||||
|
|
||||||
|
s_logger.debug("Found " + lbRules.size() + " load balancing rule(s) to apply as a part of domR " + router + " start.");
|
||||||
|
if (!lbRules.isEmpty()) {
|
||||||
|
_commandSetupHelper.createApplyLoadBalancingRulesCommands(lbRules, router, cmds, guestNetworkId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void createLoadBalancingRulesList(List<LoadBalancingRule> lbRules, final List<LoadBalancerVO> lbs) {
|
||||||
|
for (final LoadBalancerVO lb : lbs) {
|
||||||
|
final List<LbDestination> dstList = _lbMgr.getExistingDestinations(lb.getId());
|
||||||
|
final List<LbStickinessPolicy> policyList = _lbMgr.getStickinessPolicies(lb.getId());
|
||||||
|
final List<LbHealthCheckPolicy> hcPolicyList = _lbMgr.getHealthCheckPolicies(lb.getId());
|
||||||
|
final Ip sourceIp = _networkModel.getPublicIpAddress(lb.getSourceIpAddressId()).getAddress();
|
||||||
|
final LbSslCert sslCert = _lbMgr.getLbSslCert(lb.getId());
|
||||||
|
final LoadBalancingRule loadBalancing = new LoadBalancingRule(lb, dstList, policyList, hcPolicyList, sourceIp, sslCert, lb.getLbProtocol());
|
||||||
|
lbRules.add(loadBalancing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void createDefaultEgressFirewallRule(final List<FirewallRule> rules, final long networkId) {
|
private void createDefaultEgressFirewallRule(final List<FirewallRule> rules, final long networkId) {
|
||||||
final NetworkVO network = _networkDao.findById(networkId);
|
final NetworkVO network = _networkDao.findById(networkId);
|
||||||
final NetworkOfferingVO offering = _networkOfferingDao.findById(network.getNetworkOfferingId());
|
final NetworkOfferingVO offering = _networkOfferingDao.findById(network.getNetworkOfferingId());
|
||||||
|
|||||||
@ -64,10 +64,14 @@ import com.cloud.network.Site2SiteVpnConnection;
|
|||||||
import com.cloud.network.VirtualRouterProvider;
|
import com.cloud.network.VirtualRouterProvider;
|
||||||
import com.cloud.network.addr.PublicIp;
|
import com.cloud.network.addr.PublicIp;
|
||||||
import com.cloud.network.dao.IPAddressVO;
|
import com.cloud.network.dao.IPAddressVO;
|
||||||
|
import com.cloud.network.dao.LoadBalancerDao;
|
||||||
|
import com.cloud.network.dao.LoadBalancerVO;
|
||||||
import com.cloud.network.dao.MonitoringServiceVO;
|
import com.cloud.network.dao.MonitoringServiceVO;
|
||||||
import com.cloud.network.dao.NetworkVO;
|
import com.cloud.network.dao.NetworkVO;
|
||||||
import com.cloud.network.dao.RemoteAccessVpnVO;
|
import com.cloud.network.dao.RemoteAccessVpnVO;
|
||||||
import com.cloud.network.dao.Site2SiteVpnConnectionVO;
|
import com.cloud.network.dao.Site2SiteVpnConnectionVO;
|
||||||
|
import com.cloud.network.lb.LoadBalancingRule;
|
||||||
|
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
|
||||||
import com.cloud.network.vpc.NetworkACLItemDao;
|
import com.cloud.network.vpc.NetworkACLItemDao;
|
||||||
import com.cloud.network.vpc.NetworkACLItemVO;
|
import com.cloud.network.vpc.NetworkACLItemVO;
|
||||||
import com.cloud.network.vpc.NetworkACLManager;
|
import com.cloud.network.vpc.NetworkACLManager;
|
||||||
@ -129,6 +133,8 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
|
|||||||
private EntityManager _entityMgr;
|
private EntityManager _entityMgr;
|
||||||
@Inject
|
@Inject
|
||||||
protected HypervisorGuruManager _hvGuruMgr;
|
protected HypervisorGuruManager _hvGuruMgr;
|
||||||
|
@Inject
|
||||||
|
private LoadBalancerDao loadBalancerDao;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
|
public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
|
||||||
@ -522,12 +528,32 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
|
|||||||
cmds.addCommand(finishCmd);
|
cmds.addCommand(finishCmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
createApplyLoadBalancingRulesCommandsForVpc(cmds, domainRouterVO, provider, guestNics);
|
||||||
|
|
||||||
// Add network usage commands
|
// Add network usage commands
|
||||||
cmds.addCommands(usageCmds);
|
cmds.addCommands(usageCmds);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createApplyLoadBalancingRulesCommandsForVpc(final Commands cmds, DomainRouterVO domainRouterVO, Provider provider,
|
||||||
|
List<Pair<Nic, Network>> guestNics) {
|
||||||
|
final List<LoadBalancerVO> lbs = loadBalancerDao.listByVpcIdAndScheme(domainRouterVO.getVpcId(), Scheme.Public);
|
||||||
|
final List<LoadBalancingRule> lbRules = new ArrayList<>();
|
||||||
|
createLoadBalancingRulesList(lbRules, lbs);
|
||||||
|
s_logger.debug("Found " + lbRules.size() + " load balancing rule(s) to apply as a part of VPC VR " + domainRouterVO + " start.");
|
||||||
|
if (!lbRules.isEmpty()) {
|
||||||
|
for (final Pair<Nic, Network> nicNtwk : guestNics) {
|
||||||
|
final Nic guestNic = nicNtwk.first();
|
||||||
|
final long guestNetworkId = guestNic.getNetworkId();
|
||||||
|
if (_networkModel.isProviderSupportServiceInNetwork(guestNetworkId, Service.Lb, provider)) {
|
||||||
|
_commandSetupHelper.createApplyLoadBalancingRulesCommands(lbRules, domainRouterVO, cmds, guestNetworkId);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List<MonitoringServiceVO> getDefaultServicesToMonitor(NetworkVO network) {
|
protected List<MonitoringServiceVO> getDefaultServicesToMonitor(NetworkVO network) {
|
||||||
if (network.getTrafficType() == TrafficType.Public) {
|
if (network.getTrafficType() == TrafficType.Public) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user