Search in sources :

Example 6 with LoadBalancer

use of com.cloud.network.rules.LoadBalancer in project cloudstack by apache.

the class ListLBStickinessPoliciesCmd method execute.

@Override
public void execute() {
    LoadBalancer lb = null;
    if (lbRuleId == null && id == null) {
        throw new InvalidParameterValueException("load balancer rule ID and stickiness policy ID can't be null");
    }
    if (id != null) {
        lb = _lbService.findLbByStickinessId(id);
        if (lb == null) {
            throw new InvalidParameterValueException("stickiness policy ID doesn't exist");
        }
        if ((lbRuleId != null) && (lbRuleId != lb.getId())) {
            throw new InvalidParameterValueException("stickiness policy ID doesn't belong to lbId" + lbRuleId);
        }
    }
    if (lbRuleId != null && lb == null) {
        lb = _lbService.findById(getLbRuleId());
    }
    List<LBStickinessResponse> spResponses = new ArrayList<LBStickinessResponse>();
    ListResponse<LBStickinessResponse> response = new ListResponse<LBStickinessResponse>();
    if (lb != null) {
        //check permissions
        Account caller = CallContext.current().getCallingAccount();
        _accountService.checkAccess(caller, null, true, lb);
        List<? extends StickinessPolicy> stickinessPolicies = _lbService.searchForLBStickinessPolicies(this);
        LBStickinessResponse spResponse = _responseGenerator.createLBStickinessPolicyResponse(stickinessPolicies, lb);
        spResponses.add(spResponse);
        response.setResponses(spResponses);
    }
    response.setResponseName(getCommandName());
    this.setResponseObject(response);
}
Also used : Account(com.cloud.user.Account) ListResponse(org.apache.cloudstack.api.response.ListResponse) InvalidParameterValueException(com.cloud.exception.InvalidParameterValueException) ArrayList(java.util.ArrayList) LoadBalancer(com.cloud.network.rules.LoadBalancer) LBStickinessResponse(org.apache.cloudstack.api.response.LBStickinessResponse)

Example 7 with LoadBalancer

use of com.cloud.network.rules.LoadBalancer in project cloudstack by apache.

the class CreateLBHealthCheckPolicyCmd method execute.

@Override
public void execute() throws ResourceAllocationException, ResourceUnavailableException {
    HealthCheckPolicy policy = null;
    boolean success = false;
    try {
        CallContext.current().setEventDetails("Load balancer health check policy ID : " + getEntityId());
        success = _lbService.applyLBHealthCheckPolicy(this);
        if (success) {
            // State might be different after the rule is applied, so get new object here
            policy = _entityMgr.findById(HealthCheckPolicy.class, getEntityId());
            LoadBalancer lb = _lbService.findById(policy.getLoadBalancerId());
            LBHealthCheckResponse hcResponse = _responseGenerator.createLBHealthCheckPolicyResponse(policy, lb);
            setResponseObject(hcResponse);
            hcResponse.setResponseName(getCommandName());
        }
    } finally {
        if (!success || (policy == null)) {
            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create health check policy");
        }
    }
}
Also used : ServerApiException(org.apache.cloudstack.api.ServerApiException) LoadBalancer(com.cloud.network.rules.LoadBalancer) LBHealthCheckResponse(org.apache.cloudstack.api.response.LBHealthCheckResponse) HealthCheckPolicy(com.cloud.network.rules.HealthCheckPolicy)

Example 8 with LoadBalancer

use of com.cloud.network.rules.LoadBalancer in project cloudstack by apache.

the class CreateLBStickinessPolicyCmd method execute.

@Override
public void execute() throws ResourceAllocationException, ResourceUnavailableException {
    StickinessPolicy policy = null;
    boolean success = false;
    try {
        CallContext.current().setEventDetails("Rule Id: " + getEntityId());
        success = _lbService.applyLBStickinessPolicy(this);
        if (success) {
            // State might be different after the rule is applied, so get new object here
            policy = _entityMgr.findById(StickinessPolicy.class, getEntityId());
            LoadBalancer lb = _lbService.findById(policy.getLoadBalancerId());
            LBStickinessResponse spResponse = _responseGenerator.createLBStickinessPolicyResponse(policy, lb);
            setResponseObject(spResponse);
            spResponse.setResponseName(getCommandName());
        }
    } finally {
        if (!success || (policy == null)) {
            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create stickiness policy");
        }
    }
}
Also used : ServerApiException(org.apache.cloudstack.api.ServerApiException) LoadBalancer(com.cloud.network.rules.LoadBalancer) StickinessPolicy(com.cloud.network.rules.StickinessPolicy) LBStickinessResponse(org.apache.cloudstack.api.response.LBStickinessResponse)

Example 9 with LoadBalancer

use of com.cloud.network.rules.LoadBalancer in project cloudstack by apache.

the class DeleteLBHealthCheckPolicyCmd method getSyncObjId.

@Override
public Long getSyncObjId() {
    HealthCheckPolicy policy = _entityMgr.findById(HealthCheckPolicy.class, getId());
    if (policy == null) {
        throw new InvalidParameterValueException("Unable to find load balancer health check rule: " + id);
    }
    LoadBalancer lb = _lbService.findById(policy.getLoadBalancerId());
    if (lb == null) {
        throw new InvalidParameterValueException("Unable to find load balancer rule for health check rule: " + id);
    }
    return lb.getNetworkId();
}
Also used : InvalidParameterValueException(com.cloud.exception.InvalidParameterValueException) LoadBalancer(com.cloud.network.rules.LoadBalancer) HealthCheckPolicy(com.cloud.network.rules.HealthCheckPolicy)

Example 10 with LoadBalancer

use of com.cloud.network.rules.LoadBalancer in project cloudstack by apache.

the class UpdateLBStickinessPolicyCmd method execute.

/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public void execute() {
    StickinessPolicy policy = _lbService.updateLBStickinessPolicy(this.getId(), this.getCustomId(), this.getDisplay());
    LoadBalancer lb = _lbService.findById(policy.getLoadBalancerId());
    LBStickinessResponse spResponse = _responseGenerator.createLBStickinessPolicyResponse(policy, lb);
    setResponseObject(spResponse);
    spResponse.setResponseName(getCommandName());
}
Also used : LoadBalancer(com.cloud.network.rules.LoadBalancer) StickinessPolicy(com.cloud.network.rules.StickinessPolicy) LBStickinessResponse(org.apache.cloudstack.api.response.LBStickinessResponse)

Aggregations

LoadBalancer (com.cloud.network.rules.LoadBalancer)26 InvalidParameterValueException (com.cloud.exception.InvalidParameterValueException)12 ArrayList (java.util.ArrayList)9 NetworkRuleConflictException (com.cloud.exception.NetworkRuleConflictException)6 InsufficientAddressCapacityException (com.cloud.exception.InsufficientAddressCapacityException)5 StickinessPolicy (com.cloud.network.rules.StickinessPolicy)5 Account (com.cloud.user.Account)5 ServerApiException (org.apache.cloudstack.api.ServerApiException)5 ServerApiException (com.cloud.api.ServerApiException)4 LoadBalancerResponse (org.apache.cloudstack.api.response.LoadBalancerResponse)4 LoadBalancerResponse (com.cloud.api.response.LoadBalancerResponse)3 ResourceUnavailableException (com.cloud.exception.ResourceUnavailableException)3 HealthCheckPolicy (com.cloud.network.rules.HealthCheckPolicy)3 LBHealthCheckResponse (org.apache.cloudstack.api.response.LBHealthCheckResponse)3 LBStickinessResponse (org.apache.cloudstack.api.response.LBStickinessResponse)3 ListResponse (org.apache.cloudstack.api.response.ListResponse)3 LBStickinessResponse (com.cloud.api.response.LBStickinessResponse)2 ListResponse (com.cloud.api.response.ListResponse)2 ResourceAllocationException (com.cloud.exception.ResourceAllocationException)2 Network (com.cloud.network.Network)2