Example usage for com.amazonaws.services.elasticloadbalancing.model LoadBalancerAttributes setCrossZoneLoadBalancing

List of usage examples for com.amazonaws.services.elasticloadbalancing.model LoadBalancerAttributes setCrossZoneLoadBalancing

Introduction

In this page you can find the example usage for com.amazonaws.services.elasticloadbalancing.model LoadBalancerAttributes setCrossZoneLoadBalancing.

Prototype


public void setCrossZoneLoadBalancing(CrossZoneLoadBalancing crossZoneLoadBalancing) 

Source Link

Document

If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones.

Usage

From source file:com.netflix.spinnaker.clouddriver.aws.deploy.handlers.MigrateLoadBalancerStrategy.java

License:Apache License

public LoadBalancerAttributes getLoadBalancerAttributes(LoadBalancerDescription sourceLoadBalancer,
        AmazonElasticLoadBalancing sourceClient) {
    LoadBalancerAttributes sourceAttributes = sourceClient
            .describeLoadBalancerAttributes(new DescribeLoadBalancerAttributesRequest()
                    .withLoadBalancerName(sourceLoadBalancer.getLoadBalancerName()))
            .getLoadBalancerAttributes();
    if (sourceLoadBalancer.getListenerDescriptions().stream()
            .anyMatch(l -> l.getListener().getInstancePort() == 0)) {
        sourceAttributes.setCrossZoneLoadBalancing(new CrossZoneLoadBalancing().withEnabled(true));
    }//from w ww.j  a  va2  s  .c o  m
    return sourceAttributes;
}

From source file:org.apache.stratos.aws.extension.AWSHelper.java

License:Apache License

public void modifyLBAttributes(String loadBalancerName, String region, boolean enableCrossZoneLbing,
        boolean enableConnDraining) {

    if (!enableCrossZoneLbing && !enableConnDraining) {
        log.info("No attributes specified to modify in the LB " + loadBalancerName);
        return;//from   ww  w .  j a  v  a2  s. co  m
    }

    ModifyLoadBalancerAttributesRequest modifyLBAttributesReq = new ModifyLoadBalancerAttributesRequest()
            .withLoadBalancerName(loadBalancerName);
    LoadBalancerAttributes modifiedLbAttributes = new LoadBalancerAttributes();
    if (enableCrossZoneLbing) {
        modifiedLbAttributes.setCrossZoneLoadBalancing(new CrossZoneLoadBalancing().withEnabled(true));
    }
    if (enableConnDraining) {
        modifiedLbAttributes.setConnectionDraining(new ConnectionDraining().withEnabled(true));
    }

    modifyLBAttributesReq.setLoadBalancerAttributes(modifiedLbAttributes);

    elbClient.setEndpoint(String.format(Constants.ELB_ENDPOINT_URL_FORMAT, region));

    ModifyLoadBalancerAttributesResult modifyLBAttributesRes = elbClient
            .modifyLoadBalancerAttributes(modifyLBAttributesReq);
    if (modifyLBAttributesRes != null) {
        log.info("Successfully enabled cross zone load balancing and connection draining for "
                + loadBalancerName);
    } else {
        log.error("Failed to enable cross zone load balancing and connection draining for " + loadBalancerName);
    }
}