mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	Merge remote-tracking branch 'apache/4.19'
This commit is contained in:
		
						commit
						3fd5680d9a
					
				| @ -2544,25 +2544,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); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             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); | ||||||
| @ -2589,6 +2571,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); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         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()); | ||||||
|  | |||||||
| @ -66,10 +66,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; | ||||||
| @ -134,6 +138,8 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian | |||||||
|     protected NetworkDao networkDao; |     protected NetworkDao networkDao; | ||||||
|     @Inject |     @Inject | ||||||
|     protected VpcDao vpcDao; |     protected VpcDao vpcDao; | ||||||
|  |     @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 { | ||||||
| @ -531,12 +537,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); | ||||||
|  |         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