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

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

Introduction

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

Prototype


public RegisterInstancesWithLoadBalancerRequest 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 void registerInstances(AwsProcessClient awsProcessClient, Long loadBalancerNo, List<Long> instanceNos) {
    if (instanceNos.isEmpty()) {
        // ???????
        return;//www .  j  a v  a2s .  c  om
    }

    // ???????
    {
        List<Long> tmpInstanceNos = new ArrayList<Long>();
        List<LoadBalancerInstance> loadBalancerInstances = loadBalancerInstanceDao
                .readByLoadBalancerNo(loadBalancerNo);
        for (LoadBalancerInstance loadBalancerInstance : loadBalancerInstances) {
            if (instanceNos.contains(loadBalancerInstance.getInstanceNo())) {
                LoadBalancerInstanceStatus status = LoadBalancerInstanceStatus
                        .fromStatus(loadBalancerInstance.getStatus());
                if (status == LoadBalancerInstanceStatus.STOPPED) {
                    tmpInstanceNos.add(loadBalancerInstance.getInstanceNo());
                }
            }
        }
        instanceNos = tmpInstanceNos;
    }

    if (instanceNos.isEmpty()) {
        // ???????????
        return;
    }

    // ????
    {
        List<Long> tmpInstanceNos = new ArrayList<Long>();
        List<Instance> instances = instanceDao.readInInstanceNos(instanceNos);
        for (Instance instance : instances) {
            InstanceStatus status = InstanceStatus.fromStatus(instance.getStatus());
            if (status == InstanceStatus.RUNNING) {
                tmpInstanceNos.add(instance.getInstanceNo());
            }
        }
        instanceNos = tmpInstanceNos;
    }

    if (instanceNos.isEmpty()) {
        // ????????
        return;
    }

    // ID?
    List<String> instanceIds = new ArrayList<String>();
    {
        List<AwsInstance> awsInstances = awsInstanceDao.readInInstanceNos(instanceNos);
        for (AwsInstance awsInstance : awsInstances) {
            instanceIds.add(awsInstance.getInstanceId());
        }
    }

    try {
        // ?
        AwsLoadBalancer awsLoadBalancer = awsLoadBalancerDao.read(loadBalancerNo);
        RegisterInstancesWithLoadBalancerRequest request = new RegisterInstancesWithLoadBalancerRequest();
        request.withLoadBalancerName(awsLoadBalancer.getName());
        for (String instanceId : instanceIds) {
            request.withInstances(new com.amazonaws.services.elasticloadbalancing.model.Instance(instanceId));
        }
        awsProcessClient.getElbClient().registerInstancesWithLoadBalancer(request);

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

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

    } catch (RuntimeException e) {
        // ?
        List<LoadBalancerInstance> loadBalancerInstances = loadBalancerInstanceDao
                .readByLoadBalancerNo(loadBalancerNo);
        for (LoadBalancerInstance loadBalancerInstance : loadBalancerInstances) {
            if (instanceNos.contains(loadBalancerInstance.getInstanceNo())) {
                loadBalancerInstance.setStatus(LoadBalancerInstanceStatus.WARNING.toString());
                loadBalancerInstanceDao.update(loadBalancerInstance);
            }
        }

        throw e;
    }

    // ?
    List<LoadBalancerInstance> loadBalancerInstances = loadBalancerInstanceDao
            .readByLoadBalancerNo(loadBalancerNo);
    for (LoadBalancerInstance loadBalancerInstance : loadBalancerInstances) {
        if (instanceNos.contains(loadBalancerInstance.getInstanceNo())) {
            loadBalancerInstance.setStatus(LoadBalancerInstanceStatus.RUNNING.toString());
            loadBalancerInstanceDao.update(loadBalancerInstance);
        }
    }
}