protected void finalizeLbRulesForIp(final Commands cmds, final DomainRouterVO internalLbVm, final Provider provider, final Ip sourceIp, final long guestNtwkId) { s_logger.debug("Resending load balancing rules as a part of start for " + internalLbVm); final List<ApplicationLoadBalancerRuleVO> lbs = _lbDao.listBySrcIpSrcNtwkId(sourceIp, guestNtwkId); final List<LoadBalancingRule> lbRules = new ArrayList<LoadBalancingRule>(); if (_ntwkModel.isProviderSupportServiceInNetwork(guestNtwkId, Service.Lb, provider)) { // Re-apply load balancing rules for (final ApplicationLoadBalancerRuleVO 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 LoadBalancingRule loadBalancing = new LoadBalancingRule(lb, dstList, policyList, hcPolicyList, sourceIp); lbRules.add(loadBalancing); } } s_logger.debug("Found " + lbRules.size() + " load balancing rule(s) to apply as a part of Intenrnal LB vm" + internalLbVm + " start."); if (!lbRules.isEmpty()) { createApplyLoadBalancingRulesCommands(lbRules, internalLbVm, cmds, guestNtwkId); } }
private boolean configureAutoScaleVmGroup(long vmGroupid, String currentState) throws ResourceUnavailableException { AutoScaleVmGroup vmGroup = _autoScaleVmGroupDao.findById(vmGroupid); if (isLoadBalancerBasedAutoScaleVmGroup(vmGroup)) { try { return _lbRulesMgr.configureLbAutoScaleVmGroup(vmGroupid, currentState); } catch (ResourceUnavailableException re) { throw re; } catch (Exception e) { s_logger.warn("Exception during configureLbAutoScaleVmGroup in lb rules manager", e); return false; } } // This should never happen, because today loadbalancerruleid is manadatory for AutoScaleVmGroup. throw new InvalidParameterValueException("Only LoadBalancer based AutoScale is supported"); }
public List<AutoScaleCounter> getSupportedAutoScaleCounters(long networkid) { String capability = _lbRulesMgr.getLBCapability(networkid, Capability.AutoScaleCounters.getName()); if (capability == null) { return null; } Gson gson = new Gson(); java.lang.reflect.Type listType = new TypeToken<List<AutoScaleCounter>>() { }.getType(); List<AutoScaleCounter> result = gson.fromJson(capability, listType); return result; }
@Override public boolean accept(final NetworkTopologyVisitor visitor, final VirtualRouter router) throws ResourceUnavailableException { _router = router; _purpose = _rules.get(0).getPurpose(); if (_purpose == Purpose.LoadBalancing) { LoadBalancerDao loadBalancerDao = visitor.getVirtualNetworkApplianceFactory().getLoadBalancerDao(); // for load balancer we have to resend all lb rules for the network final List<LoadBalancerVO> lbs = loadBalancerDao.listByNetworkIdAndScheme(_network.getId(), Scheme.Public); _loadbalancingRules = new ArrayList<LoadBalancingRule>(); LoadBalancingRulesManager lbMgr = visitor.getVirtualNetworkApplianceFactory().getLbMgr(); NetworkModel networkModel = visitor.getVirtualNetworkApplianceFactory().getNetworkModel(); 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 LbSslCert sslCert = lbMgr.getLbSslCert(lb.getId()); final Ip sourceIp = networkModel.getPublicIpAddress(lb.getSourceIpAddressId()).getAddress(); final LoadBalancingRule loadBalancing = new LoadBalancingRule(lb, dstList, policyList, hcPolicyList, sourceIp, sslCert, lb.getLbProtocol()); _loadbalancingRules.add(loadBalancing); } } return visitor.visit(this); }
_lbMgr.isLbServiceSupportedInNetwork(network.getId(), scheme);
if (!_lbMgr.applyLoadBalancersForNetwork(networkId, Scheme.Public)) { s_logger.warn("Failed to reapply Public load balancer rules as a part of network id=" + networkId + " restart"); success = false; if (!_lbMgr.applyLoadBalancersForNetwork(networkId, Scheme.Internal)) { s_logger.warn("Failed to reapply internal load balancer rules as a part of network id=" + networkId + " restart"); success = false;
lb.setSourceIpAddressId(ipId); result = _lbMgr.createPublicLoadBalancer(lb.getXid(), lb.getName(), lb.getDescription(), lb.getSourcePortStart(), lb.getDefaultPortStart(), ipId.longValue(), lb.getProtocol(), lb.getAlgorithm(), false, CallContext.current(), lb.getLbProtocol(), true); } catch (final NetworkRuleConflictException e) {
@Override public boolean accept(final NetworkTopologyVisitor visitor, final VirtualRouter router) throws ResourceUnavailableException { _router = router; LoadBalancerDao loadBalancerDao = visitor.getVirtualNetworkApplianceFactory().getLoadBalancerDao(); // For load balancer we have to resend all lb rules for the network final List<LoadBalancerVO> lbs = loadBalancerDao.listByNetworkIdAndScheme(_network.getId(), Scheme.Public); // We are cleaning it before because all the rules have to be sent to the router. _rules.clear(); LoadBalancingRulesManager lbMgr = visitor.getVirtualNetworkApplianceFactory().getLbMgr(); NetworkModel networkModel = visitor.getVirtualNetworkApplianceFactory().getNetworkModel(); 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 LbSslCert sslCert = lbMgr.getLbSslCert(lb.getId()); final Ip sourceIp = networkModel.getPublicIpAddress(lb.getSourceIpAddressId()).getAddress(); final LoadBalancingRule loadBalancing = new LoadBalancingRule(lb, dstList, policyList, hcPolicyList, sourceIp, sslCert, lb.getLbProtocol()); _rules.add(loadBalancing); } return visitor.visit(this); }
List<LoadBalancingRule> lbRules = new ArrayList<LoadBalancingRule>(); for (LoadBalancerVO lb : lbs) { List<LbDestination> dstList = _lbMgr.getExistingDestinations(lb.getId()); List<LbStickinessPolicy> policyList = _lbMgr.getStickinessPolicies(lb.getId()); List<LbHealthCheckPolicy> hcPolicyList = _lbMgr.getHealthCheckPolicies(lb.getId()); Ip sourceIp = _networkModel.getPublicIpAddress(lb.getSourceIpAddressId()).getAddress(); LbSslCert sslCert = _lbMgr.getLbSslCert(lb.getId()); LoadBalancingRule loadBalancing = new LoadBalancingRule(lb, dstList, policyList, hcPolicyList, sourceIp, sslCert, lb.getLbProtocol()); lbRules.add(loadBalancing);
List<LoadBalancingRule> lbRules = new ArrayList<LoadBalancingRule>(); for (LoadBalancerVO lb : lbs) { List<LbDestination> dstList = _lbMgr.getExistingDestinations(lb.getId()); List<LbStickinessPolicy> policyList = _lbMgr.getStickinessPolicies(lb.getId()); List<LbHealthCheckPolicy> hcPolicyList = _lbMgr.getHealthCheckPolicies(lb.getId()); Ip sourceIp = _networkModel.getPublicIpAddress(lb.getSourceIpAddressId()).getAddress(); LoadBalancingRule loadBalancing = new LoadBalancingRule(lb, dstList, policyList, hcPolicyList, sourceIp);
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);