List of usage examples for com.amazonaws.services.elasticloadbalancing.model DescribeInstanceHealthRequest DescribeInstanceHealthRequest
public DescribeInstanceHealthRequest()
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 . ja v a 2 s . 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;
}