List of usage examples for com.amazonaws.services.elasticloadbalancing.model DescribeInstanceHealthResult DescribeInstanceHealthResult
DescribeInstanceHealthResult
From source file:com.netflix.edda.EddaElasticLoadBalancingClient.java
License:Apache License
public DescribeInstanceHealthResult describeInstanceHealth(DescribeInstanceHealthRequest request) { validateNotEmpty("LoadBalancerName", request.getLoadBalancerName()); TypeReference<InstanceStateView> ref = new TypeReference<InstanceStateView>() { };/*from w w w . j av a 2 s . c om*/ String loadBalancerName = request.getLoadBalancerName(); String url = config.url() + "/api/v2/view/loadBalancerInstances/" + loadBalancerName + ";_expand"; try { InstanceStateView instanceStateView = parse(ref, doGet(url)); List<InstanceState> instanceStates = instanceStateView.getInstances(); List<Instance> instances = request.getInstances(); List<String> ids = new ArrayList<String>(); if (instances != null) { for (Instance i : instances) ids.add(i.getInstanceId()); } if (shouldFilter(ids)) { List<InstanceState> iss = new ArrayList<InstanceState>(); for (InstanceState is : instanceStates) { if (matches(ids, is.getInstanceId())) iss.add(is); } instanceStates = iss; } return new DescribeInstanceHealthResult().withInstanceStates(instanceStateView.getInstances()); } catch (IOException e) { throw new AmazonClientException("Faled to parse " + url, e); } }