private Ip getSourceIp(LoadBalancer lb) { Ip sourceIp = null; if (lb.getScheme() == Scheme.Public) { sourceIp = _networkModel.getPublicIpAddress(lb.getSourceIpAddressId()).getAddress(); } else if (lb.getScheme() == Scheme.Internal) { ApplicationLoadBalancerRuleVO appLbRule = _appLbRuleDao.findById(lb.getId()); sourceIp = appLbRule.getSourceIp(); } return sourceIp; }
public String getAlgorithm() { return lb.getAlgorithm(); }
public int getDefaultPortStart() { return lb.getDefaultPortStart(); }
@Override public LoadBalancerResponse createLoadBalancerResponse(LoadBalancer loadBalancer) { LoadBalancerResponse lbResponse = new LoadBalancerResponse(); lbResponse.setId(loadBalancer.getUuid()); lbResponse.setName(loadBalancer.getName()); lbResponse.setDescription(loadBalancer.getDescription()); List<String> cidrs = ApiDBUtils.findFirewallSourceCidrs(loadBalancer.getId()); lbResponse.setCidrList(StringUtils.join(cidrs, ",")); IPAddressVO publicIp = ApiDBUtils.findIpAddressById(loadBalancer.getSourceIpAddressId()); lbResponse.setPublicIpId(publicIp.getUuid()); lbResponse.setPublicIp(publicIp.getAddress().addr()); lbResponse.setPublicPort(Integer.toString(loadBalancer.getSourcePortStart())); lbResponse.setPrivatePort(Integer.toString(loadBalancer.getDefaultPortStart())); lbResponse.setAlgorithm(loadBalancer.getAlgorithm()); lbResponse.setLbProtocol(loadBalancer.getLbProtocol()); lbResponse.setForDisplay(loadBalancer.isDisplay()); FirewallRule.State state = loadBalancer.getState(); String stateToSet = state.toString(); if (state.equals(FirewallRule.State.Revoke)) { List<? extends ResourceTag> tags = ApiDBUtils.listByResourceTypeAndId(ResourceObjectType.LoadBalancer, loadBalancer.getId()); List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>(); for (ResourceTag tag : tags) { Network ntwk = ApiDBUtils.findNetworkById(loadBalancer.getNetworkId()); lbResponse.setNetworkId(ntwk.getUuid());
@Override public LBStickinessResponse createLBStickinessPolicyResponse(StickinessPolicy stickinessPolicy, LoadBalancer lb) { LBStickinessResponse spResponse = new LBStickinessResponse(); spResponse.setlbRuleId(lb.getUuid()); Account accountTemp = ApiDBUtils.findAccountById(lb.getAccountId()); if (accountTemp != null) { spResponse.setAccountName(accountTemp.getAccountName()); Domain domain = ApiDBUtils.findDomainById(accountTemp.getDomainId()); if (domain != null) { spResponse.setDomainId(domain.getUuid()); spResponse.setDomainName(domain.getName()); } } List<LBStickinessPolicyResponse> responses = new ArrayList<LBStickinessPolicyResponse>(); LBStickinessPolicyResponse ruleResponse = new LBStickinessPolicyResponse(stickinessPolicy); responses.add(ruleResponse); spResponse.setRules(responses); spResponse.setObjectName("stickinesspolicies"); return spResponse; }
public long getId() { return lb.getId(); }
public long getNetworkId() { return lb.getNetworkId(); }
@Override public long getEntityOwnerId() { LoadBalancer lb = _entityMgr.findById(LoadBalancer.class, getId()); if (lb == null) { return Account.ACCOUNT_ID_SYSTEM; // bad id given, parent this command to SYSTEM so ERROR events are tracked } return lb.getAccountId(); }
@Override public void create() { //cidr list parameter is deprecated if (cidrlist != null) { throw new InvalidParameterValueException( "Parameter cidrList is deprecated; if you need to open firewall rule for the specific CIDR, please refer to createFirewallRule command"); } try { LoadBalancer result = _lbService.createPublicLoadBalancerRule(getXid(), getName(), getDescription(), getSourcePortStart(), getSourcePortEnd(), getDefaultPortStart(), getDefaultPortEnd(), getSourceIpAddressId(), getProtocol(), getAlgorithm(), getNetworkId(), getEntityOwnerId(), getOpenFirewall(), getLbProtocol(), isDisplay()); this.setEntityId(result.getId()); this.setEntityUuid(result.getUuid()); } catch (NetworkRuleConflictException e) { s_logger.warn("Exception: ", e); throw new ServerApiException(ApiErrorCode.NETWORK_RULE_CONFLICT_ERROR, e.getMessage()); } catch (InsufficientAddressCapacityException e) { s_logger.warn("Exception: ", e); throw new ServerApiException(ApiErrorCode.INSUFFICIENT_CAPACITY_ERROR, e.getMessage()); } catch (InvalidParameterValueException e) { throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.getMessage()); } }
public void handleDeleteLoadBalancerRule(final LoadBalancer lb, final long userId, final Account caller) { final List<LoadBalancerVO> remainingLbs = _loadBalancerDao.listByIpAddress(lb.getSourceIpAddressId()); if (remainingLbs.size() == 0) { s_logger.debug("ELB mgr: releasing ip " + lb.getSourceIpAddressId() + " since no LB rules remain for this ip address"); releaseIp(lb.getSourceIpAddressId(), userId, caller); } }
public Integer getSourcePortStart() { return lb.getSourcePortStart(); }
public Scheme getScheme() { return lb.getScheme(); } }
public String getName() { return lb.getName(); }
public String getDescription() { return lb.getDescription(); }
@Override public LBHealthCheckResponse createLBHealthCheckPolicyResponse(HealthCheckPolicy healthcheckPolicy, LoadBalancer lb) { LBHealthCheckResponse hcResponse = new LBHealthCheckResponse(); hcResponse.setlbRuleId(lb.getUuid()); Account accountTemp = ApiDBUtils.findAccountById(lb.getAccountId()); if (accountTemp != null) { hcResponse.setAccountName(accountTemp.getAccountName()); Domain domain = ApiDBUtils.findDomainById(accountTemp.getDomainId()); if (domain != null) { hcResponse.setDomainId(domain.getUuid()); hcResponse.setDomainName(domain.getName()); } } List<LBHealthCheckPolicyResponse> responses = new ArrayList<LBHealthCheckPolicyResponse>(); LBHealthCheckPolicyResponse ruleResponse = new LBHealthCheckPolicyResponse(healthcheckPolicy); responses.add(ruleResponse); hcResponse.setRules(responses); hcResponse.setObjectName("healthcheckpolicies"); return hcResponse; }
@Override public void removeLBRule(LoadBalancer rule) { // remove the rule _lbDao.remove(rule.getId()); }
@Override public Long getSyncObjId() { LoadBalancer lb = _lbService.findById(id); if (lb == null) { throw new InvalidParameterValueException("Unable to find load balancer rule: " + id); } return lb.getNetworkId(); } }
@Override public long getEntityOwnerId() { LoadBalancer lb = _entityMgr.findById(LoadBalancer.class, getLbRuleId()); if (lb == null) { return Account.ACCOUNT_ID_SYSTEM; // bad id given, parent this command to SYSTEM so ERROR events are tracked } return lb.getAccountId(); }
public Long getSourceIpAddressId() { if (publicIpId != null) { IpAddress ipAddr = _networkService.getIp(publicIpId); if (ipAddr == null || !ipAddr.readyToUse()) { throw new InvalidParameterValueException("Unable to create load balancer rule, invalid IP address ID " + publicIpId); } } else if (getEntityId() != null) { LoadBalancer rule = _entityMgr.findById(LoadBalancer.class, getEntityId()); return rule.getSourceIpAddressId(); } return publicIpId; }
@Override public LBStickinessResponse createLBStickinessPolicyResponse(List<? extends StickinessPolicy> stickinessPolicies, LoadBalancer lb) { LBStickinessResponse spResponse = new LBStickinessResponse(); if (lb == null) { return spResponse; } spResponse.setlbRuleId(lb.getUuid()); Account account = ApiDBUtils.findAccountById(lb.getAccountId()); if (account != null) { spResponse.setAccountName(account.getAccountName()); Domain domain = ApiDBUtils.findDomainById(account.getDomainId()); if (domain != null) { spResponse.setDomainId(domain.getUuid()); spResponse.setDomainName(domain.getName()); } } List<LBStickinessPolicyResponse> responses = new ArrayList<LBStickinessPolicyResponse>(); for (StickinessPolicy stickinessPolicy : stickinessPolicies) { LBStickinessPolicyResponse ruleResponse = new LBStickinessPolicyResponse(stickinessPolicy); responses.add(ruleResponse); } spResponse.setRules(responses); spResponse.setObjectName("stickinesspolicies"); return spResponse; }