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

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

Introduction

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

Prototype


public DeregisterInstancesFromLoadBalancerRequest 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 unregisterInstances(AwsProcessClient awsProcessClient, Long loadBalancerNo,
        List<Long> instanceNos) {
    if (instanceNos.isEmpty()) {
        // ???????
        return;/*from  w  w  w.j  a va 2s  . c  o m*/
    }

    // ?????
    {
        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.RUNNING) {
                    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);
        DeregisterInstancesFromLoadBalancerRequest request = new DeregisterInstancesFromLoadBalancerRequest();
        request.withLoadBalancerName(awsLoadBalancer.getName());
        for (String instanceId : instanceIds) {
            request.withInstances(new com.amazonaws.services.elasticloadbalancing.model.Instance(instanceId));
        }
        awsProcessClient.getElbClient().deregisterInstancesFromLoadBalancer(request);

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

        // 
        processLogger.debug(null, null, "AwsElbInstancesDeregist", 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.STOPPED.toString());
            loadBalancerInstanceDao.update(loadBalancerInstance);
        }
    }
}