Example usage for com.amazonaws.services.elasticloadbalancing.model ModifyLoadBalancerAttributesRequest withLoadBalancerName

List of usage examples for com.amazonaws.services.elasticloadbalancing.model ModifyLoadBalancerAttributesRequest withLoadBalancerName

Introduction

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

Prototype


public ModifyLoadBalancerAttributesRequest withLoadBalancerName(String loadBalancerName) 

Source Link

Document

The name of the load balancer.

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  2 s  .  com
    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;
}