@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; }
LBStickinessPolicyVO stickinessPolicy = _lb2stickinesspoliciesDao.findById(stickinessPolicyId); _lb2stickinesspoliciesDao.persist(stickinessPolicy); s_logger.debug("Set load balancer rule for revoke: rule id " + loadBalancerId + ", stickinesspolicyID " + stickinessPolicyId); if (isRollBackAllowedForProvider(loadBalancer)) { stickinessPolicy.setRevoke(backupStickyState); _lb2stickinesspoliciesDao.persist(stickinessPolicy); loadBalancer.setState(backupState); _lbDao.persist(loadBalancer); _lb2stickinesspoliciesDao.expunge(stickinessPolicyId);
throw new InvalidParameterException("Invalid Load balancer Id:" + cmd.getLbRuleId()); List<LBStickinessPolicyVO> stickinessPolicies = _lb2stickinesspoliciesDao.listByLoadBalancerId(cmd.getLbRuleId(), false); for (LBStickinessPolicyVO stickinessPolicy : stickinessPolicies) { if (stickinessPolicy.getId() == cmd.getEntityId()) { oldStickinessPolicyId = stickinessPolicy.getId(); stickinessPolicy.setRevoke(true); _lb2stickinesspoliciesDao.persist(stickinessPolicy); deleteLBStickinessPolicy(cmd.getEntityId(), false); if (oldStickinessPolicyId != 0) { LBStickinessPolicyVO stickinessPolicy = _lb2stickinesspoliciesDao.findById(oldStickinessPolicyId); stickinessPolicy.setRevoke(false); _lb2stickinesspoliciesDao.persist(stickinessPolicy); try { if (backupState.equals(FirewallRule.State.Active))
List<LBStickinessPolicyVO> stickinesspolicies = _lb2stickinesspoliciesDao.listByLoadBalancerId(lb.getId(), true); if (!stickinesspolicies.isEmpty()) { _lb2stickinesspoliciesDao.remove(lb.getId(), true); s_logger.debug("Load balancer rule id " + lb.getId() + " is removed stickiness policies");
@Override public LoadBalancerVO findLbByStickinessId(long stickinessPolicyId) { LBStickinessPolicyVO stickinessPolicy = _lb2stickinesspoliciesDao.findById(stickinessPolicyId); if (stickinessPolicy == null) { return null; } return _lbDao.findById(stickinessPolicy.getLoadBalancerId()); }
@Override public List<LBStickinessPolicyVO> searchForLBStickinessPolicies(ListLBStickinessPoliciesCmd cmd) throws PermissionDeniedException { Account caller = CallContext.current().getCallingAccount(); Long loadBalancerId = cmd.getLbRuleId(); Long stickinessId = cmd.getId(); boolean forDisplay = cmd.getDisplay(); LoadBalancerVO loadBalancer = null; if (loadBalancerId == null) { loadBalancer = findLbByStickinessId(stickinessId); } else { loadBalancer = _lbDao.findById(loadBalancerId); } if (loadBalancer == null) { return null; } _accountMgr.checkAccess(caller, null, true, loadBalancer); List<LBStickinessPolicyVO> sDbpolicies = _lb2stickinesspoliciesDao.listByLoadBalancerIdAndDisplayFlag(loadBalancer.getId(), forDisplay); return sDbpolicies; }
policy.setDisplay(forDisplay); policy = _lb2stickinesspoliciesDao.persist(policy);
List<LBStickinessPolicyVO> stickinessPolicies = _lb2stickinesspoliciesDao.listByLoadBalancerId(cmd.getLbRuleId(), false); if (stickinessPolicies.size() > 1) { throw new InvalidParameterValueException("Failed to create Stickiness policy: Already two policies attached " + cmd.getLbRuleId());