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

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

Introduction

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

Prototype

LoadBalancerAttributes

Source Link

Usage

From source file:jp.primecloud.auto.process.aws.AwsLoadBalancerProcess.java

License:Open Source License

public String createLoadBalancer(AwsProcessClient awsProcessClient, Long loadBalancerNo) {
    AwsLoadBalancer awsLoadBalancer = awsLoadBalancerDao.read(loadBalancerNo);

    // ??/*from   ww  w  .j  a va 2s .c  o m*/
    CreateLoadBalancerRequest request = new CreateLoadBalancerRequest();
    request.withLoadBalancerName(awsLoadBalancer.getName());

    // ?
    Listener listener = new Listener();
    listener.withProtocol("TCP");
    listener.withLoadBalancerPort(65535);
    listener.withInstancePort(65535);
    request.withListeners(listener);

    // ?PVC??
    if (BooleanUtils.isNotTrue(awsProcessClient.getPlatformAws().getVpc())) {
        // AvailabilityZones
        List<AvailabilityZone> availabilityZones = awsCommonProcess.describeAvailabilityZones(awsProcessClient);
        for (AvailabilityZone availabilityZone : availabilityZones) {
            request.withAvailabilityZones(availabilityZone.getZoneName());
        }
    }
    // VPC??
    else {
        // Subnet
        List<Subnet> subnets = awsCommonProcess.describeSubnetsByVpcId(awsProcessClient,
                awsProcessClient.getPlatformAws().getVpcId());
        if (StringUtils.isNotEmpty(awsLoadBalancer.getSubnetId())) {
            for (String subnetId : StringUtils.split(awsLoadBalancer.getSubnetId(), ",")) {
                subnetId = subnetId.trim();
                for (Subnet subnet : subnets) {
                    if (StringUtils.equals(subnetId, subnet.getSubnetId())) {
                        request.withSubnets(subnetId);
                        break;
                    }
                }
            }
        } else {
            // Subnet??????????AvailabilityZone?Subnet?
            Map<String, String> subnetIdMap = new LinkedHashMap<String, String>();
            for (Subnet subnet : subnets) {
                if (BooleanUtils.isTrue(subnet.getDefaultForAz())) {
                    subnetIdMap.put(subnet.getAvailabilityZone(), subnet.getSubnetId());
                    continue;
                }

                if (!subnetIdMap.containsKey(subnet.getAvailabilityZone())) {
                    subnetIdMap.put(subnet.getAvailabilityZone(), subnet.getSubnetId());
                }
            }
            request.withSubnets(subnetIdMap.values());
        }

        // SecurytiGroup
        List<SecurityGroup> securityGroups = awsCommonProcess.describeSecurityGroupsByVpcId(awsProcessClient,
                awsProcessClient.getPlatformAws().getVpcId());
        for (String groupName : StringUtils.split(awsLoadBalancer.getSecurityGroups(), ",")) {
            groupName = groupName.trim();
            for (SecurityGroup securityGroup : securityGroups) {
                if (StringUtils.equals(groupName, securityGroup.getGroupName())) {
                    request.withSecurityGroups(securityGroup.getGroupId());
                    break;
                }
            }
        }

        // Internal
        if (BooleanUtils.isTrue(awsLoadBalancer.getInternal())) {
            request.withScheme("internal");
        }
    }

    // ???
    CreateLoadBalancerResult result = awsProcessClient.getElbClient().createLoadBalancer(request);
    String dnsName = result.getDNSName();

    if (log.isInfoEnabled()) {
        log.info(MessageUtils.getMessage("IPROCESS-200111", awsLoadBalancer.getName()));
    }

    // 
    processLogger.debug(null, null, "AwsElbCreate",
            new Object[] { awsProcessClient.getPlatform().getPlatformName(), awsLoadBalancer.getName() });

    // ??
    DeleteLoadBalancerListenersRequest request2 = new DeleteLoadBalancerListenersRequest();
    request2.withLoadBalancerName(awsLoadBalancer.getName());
    request2.withLoadBalancerPorts(65535);
    awsProcessClient.getElbClient().deleteLoadBalancerListeners(request2);

    // ?
    ModifyLoadBalancerAttributesRequest request3 = new ModifyLoadBalancerAttributesRequest();
    request3.withLoadBalancerName(awsLoadBalancer.getName());
    request3.withLoadBalancerAttributes(new LoadBalancerAttributes()
            .withCrossZoneLoadBalancing(new CrossZoneLoadBalancing().withEnabled(true)));
    awsProcessClient.getElbClient().modifyLoadBalancerAttributes(request3);

    // 
    processLogger.debug(null, null, "AwsCrossZoneEnabled",
            new Object[] { awsProcessClient.getPlatform().getPlatformName(), awsLoadBalancer.getName() });

    // 
    awsLoadBalancer = awsLoadBalancerDao.read(loadBalancerNo);
    awsLoadBalancer.setDnsName(dnsName);
    awsLoadBalancerDao.update(awsLoadBalancer);

    return dnsName;
}

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.ja  va  2 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);
    }
}

From source file:web.component.impl.aws.AWSELBImpl.java

@Override
public ModifyLoadBalancerAttributesResult modifyLoadBalancerAttributes(String loadBalancerName,
        AccessLog accessLog) {/* w w w  .j a v a  2s .  c  om*/

    if (accessLog == null)
        throw new IllegalArgumentException("Access log not specified.");

    return modifyLoadBalancerAttributes(loadBalancerName,
            new LoadBalancerAttributes().withAccessLog(accessLog));
}

From source file:web.component.impl.aws.AWSELBImpl.java

@Override
public ModifyLoadBalancerAttributesResult modifyLoadBalancerAttributes(String loadBalancerName,
        ConnectionDraining draining) {/*  w w  w.j a  va2  s .c  o  m*/

    if (draining == null)
        throw new IllegalArgumentException("ConnectionDraining not specified.");

    return modifyLoadBalancerAttributes(loadBalancerName,
            new LoadBalancerAttributes().withConnectionDraining(draining));
}

From source file:web.component.impl.aws.AWSELBImpl.java

@Override
public ModifyLoadBalancerAttributesResult modifyLoadBalancerAttributes(String loadBalancerName,
        ConnectionSettings settings) {//w  w  w . j av a  2  s  . c  o  m

    if (settings == null)
        throw new IllegalArgumentException("ConnectionSettings not specified.");

    return modifyLoadBalancerAttributes(loadBalancerName,
            new LoadBalancerAttributes().withConnectionSettings(settings));
}

From source file:web.component.impl.aws.AWSELBImpl.java

@Override
public ModifyLoadBalancerAttributesResult modifyLoadBalancerAttributes(String loadBalancerName,
        CrossZoneLoadBalancing crossZoneBalancing) {

    if (crossZoneBalancing == null)
        throw new IllegalArgumentException("CrossZoneLoadBalancing not specified.");

    return modifyLoadBalancerAttributes(loadBalancerName,
            new LoadBalancerAttributes().withCrossZoneLoadBalancing(crossZoneBalancing));
}