@Override @ActionEvent(eventType = EventTypes.EVENT_LB_STICKINESSPOLICY_UPDATE, eventDescription = "updating lb stickiness policy", async = true) public StickinessPolicy updateLBStickinessPolicy(long id, String customId, Boolean forDisplay) { LBStickinessPolicyVO policy = _lb2stickinesspoliciesDao.findById(id); if (policy == null) { throw new InvalidParameterValueException("Fail to find stickiness policy with " + id); } LoadBalancerVO loadBalancer = _lbDao.findById(Long.valueOf(policy.getLoadBalancerId())); if (loadBalancer == null) { throw new InvalidParameterException("Invalid Load balancer : " + policy.getLoadBalancerId() + " for Stickiness policy id: " + id); } _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, true, loadBalancer); if (customId != null) { policy.setUuid(customId); } if (forDisplay != null) { policy.setDisplay(forDisplay); } _lb2stickinesspoliciesDao.update(id, policy); return _lb2stickinesspoliciesDao.findById(id); }
@Override public List<LbStickinessPolicy> getStickinessPolicies(long lbId) { List<LbStickinessPolicy> stickinessPolicies = new ArrayList<LbStickinessPolicy>(); List<LBStickinessPolicyVO> sDbpolicies = _lb2stickinesspoliciesDao.listByLoadBalancerId(lbId, false); for (LBStickinessPolicyVO sDbPolicy : sDbpolicies) { LbStickinessPolicy sPolicy = new LbStickinessPolicy(sDbPolicy.getMethodName(), sDbPolicy.getParams(), sDbPolicy.isRevoke()); stickinessPolicies.add(sPolicy); } return stickinessPolicies; }
new LBStickinessPolicyVO(loadBalancer.getId(), cmd.getLBStickinessPolicyName(), cmd.getStickinessMethodName(), cmd.getparamList(), cmd.getDescription()); List<LbStickinessPolicy> policyList = new ArrayList<LbStickinessPolicy>(); policyList.add(new LbStickinessPolicy(cmd.getStickinessMethodName(), lbpolicy.getParams())); Ip sourceIp = getSourceIp(loadBalancer); LoadBalancingRule lbRule = new LoadBalancingRule(loadBalancer, getExistingDestinations(lbpolicy.getId()), policyList, null, sourceIp, null, loadBalancer.getLbProtocol()); if (!validateLbRule(lbRule)) { throw new InvalidParameterValueException("Failed to create Stickiness policy: Validation Failed " + cmd.getLbRuleId()); new LBStickinessPolicyVO(loadBalancer.getId(), cmd.getLBStickinessPolicyName(), cmd.getStickinessMethodName(), cmd.getparamList(), cmd.getDescription()); Boolean forDisplay = cmd.getDisplay(); if (forDisplay != null) { policy.setDisplay(forDisplay);
throw new InvalidParameterException("Invalid Stickiness policy id value: " + stickinessPolicyId); LoadBalancerVO loadBalancer = _lbDao.findById(Long.valueOf(stickinessPolicy.getLoadBalancerId())); if (loadBalancer == null) { throw new InvalidParameterException("Invalid Load balancer : " + stickinessPolicy.getLoadBalancerId() + " for Stickiness policy id: " + stickinessPolicyId); boolean backupStickyState = stickinessPolicy.isRevoke(); stickinessPolicy.setRevoke(true); _lb2stickinesspoliciesDao.persist(stickinessPolicy); s_logger.debug("Set load balancer rule for revoke: rule id " + loadBalancerId + ", stickinesspolicyID " + stickinessPolicyId); stickinessPolicy.setRevoke(backupStickyState); _lb2stickinesspoliciesDao.persist(stickinessPolicy); loadBalancer.setState(backupState);
if (stickinessPolicy.getId() == cmd.getEntityId()) { backupState = loadBalancer.getState(); loadBalancer.setState(FirewallRule.State.Add); _lbDao.persist(loadBalancer); } else { oldStickinessPolicyId = stickinessPolicy.getId(); stickinessPolicy.setRevoke(true); _lb2stickinesspoliciesDao.persist(stickinessPolicy); if (oldStickinessPolicyId != 0) { LBStickinessPolicyVO stickinessPolicy = _lb2stickinesspoliciesDao.findById(oldStickinessPolicyId); stickinessPolicy.setRevoke(false); _lb2stickinesspoliciesDao.persist(stickinessPolicy); try {
@Override public LoadBalancerVO findLbByStickinessId(long stickinessPolicyId) { LBStickinessPolicyVO stickinessPolicy = _lb2stickinesspoliciesDao.findById(stickinessPolicyId); if (stickinessPolicy == null) { return null; } return _lbDao.findById(stickinessPolicy.getLoadBalancerId()); }