Example usage for com.amazonaws.services.elasticloadbalancing.model DescribeInstanceHealthResult getInstanceStates

List of usage examples for com.amazonaws.services.elasticloadbalancing.model DescribeInstanceHealthResult getInstanceStates

Introduction

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

Prototype


public java.util.List<InstanceState> getInstanceStates() 

Source Link

Document

Information about the health of the instances.

Usage

From source file:com.mentation.alfonso.aws.ElasticLoadBalancer.java

License:Apache License

public boolean isInstanceHealthy() {
    List<Instance> instances = new ArrayList<>();
    instances.add(_instance);/*from  w ww. j av  a  2  s. com*/

    DescribeInstanceHealthRequest describeInstanceHealthRequest = new DescribeInstanceHealthRequest(_name);
    describeInstanceHealthRequest.withInstances(instances);

    DescribeInstanceHealthResult describeInstanceHealthResult = _elbClient
            .describeInstanceHealth(describeInstanceHealthRequest);

    for (InstanceState state : describeInstanceHealthResult.getInstanceStates()) {
        System.out.println(state);

        if (!state.getState().equals("InService"))
            continue;

        if (state.getInstanceId().equals(getInstanceId())) {
            return true;
        }
    }

    return false;
}

From source file:tools.descartes.bungee.cloud.aws.AWSImpl.java

License:Apache License

ResourcesInfo getResourceInfo(String hostName) {
    ResourcesInfo resources = new ResourcesInfo();
    boolean ok = false;
    try {/*from ww w  . j  av a2s .  co  m*/
        LoadBalancerDescription lb = getLoadBalancerForHostName(hostName);
        if (lb != null) {
            List<Instance> instances = lb.getInstances();
            Filter filterRunning = new Filter().withName("instance-state-name").withValues("running");
            List<String> instanceIds = new LinkedList<>();
            for (Instance instance : instances) {
                instanceIds.add(instance.getInstanceId());
            }
            resources.total = lb.getInstances().size();

            DescribeInstanceStatusResult describeInstanceStatus = ec2
                    .describeInstanceStatus(new DescribeInstanceStatusRequest().withInstanceIds(instanceIds)
                            .withFilters(filterRunning));
            resources.running = describeInstanceStatus.getInstanceStatuses().size();

            DescribeInstanceHealthRequest request = new DescribeInstanceHealthRequest()
                    .withLoadBalancerName(lb.getLoadBalancerName());
            DescribeInstanceHealthResult describeInstanceHealth = elasticLB.describeInstanceHealth(request);
            List<InstanceState> instanceStates = describeInstanceHealth.getInstanceStates();
            for (InstanceState instState : instanceStates) {
                if (instState.getState().equals("InService")) {
                    resources.inService++;
                }
                ;
            }
            ok = true;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    if (!ok) {
        resources = lastResourceInfo;
    } else {
        lastResourceInfo = resources;
    }
    //System.out.println("size: " + resources.total  + " running: " + resources.running + " inService: " + resources.inService);
    return resources;
}