/** {@inheritDoc} */ @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException { initClients(); List<String> instanceIds = new ArrayList<>(); DescribeLoadBalancersRequest req = new DescribeLoadBalancersRequest().withLoadBalancerNames(loadBalancerName); List<LoadBalancerDescription> descs = amazonELBClient.describeLoadBalancers(req).getLoadBalancerDescriptions(); for (LoadBalancerDescription desc : descs) { for (Instance instance : desc.getInstances()) instanceIds.add(instance.getInstanceId()); } DescribeInstancesRequest instReq = new DescribeInstancesRequest().withInstanceIds(instanceIds); List<Reservation> reservations = amazonEC2Client.describeInstances(instReq).getReservations(); List<InetSocketAddress> addrs = new ArrayList<>(); for (Reservation reservation : reservations) { List<com.amazonaws.services.ec2.model.Instance> instances = reservation.getInstances(); for (com.amazonaws.services.ec2.model.Instance instance : instances) addrs.add(new InetSocketAddress(instance.getPrivateIpAddress(), 0)); } return addrs; }
private List<ListenerDescription> describeMatchingElbListeners(String loadbalancerName, List<Integer> ports) { DescribeLoadBalancersResult loadbalancer = awsElbClient.describeLoadBalancers(new DescribeLoadBalancersRequest().withLoadBalancerNames(loadbalancerName)); LoadBalancerDescription description = loadbalancer.getLoadBalancerDescriptions().get(0); return description.getListenerDescriptions().stream() .filter(d -> ports.contains(d.getListener().getLoadBalancerPort())) .filter(d -> d.getListener().getProtocol().startsWith("HTTP")) .collect(Collectors.toList()); }
private LoadBalancerDescription getLoadBalancer(NetflixAmazonCredentials credentials, String region, String name) { try { AmazonElasticLoadBalancing client = getAmazonClientProvider() .getAmazonElasticLoadBalancing(credentials, region, true); DescribeLoadBalancersResult targetLookup = client.describeLoadBalancers( new DescribeLoadBalancersRequest().withLoadBalancerNames(name)); return targetLookup.getLoadBalancerDescriptions().get(0); } catch (Exception ignored) { return null; } }
/** * * @param name * @param elbClient * @return */ public LoadBalancerDescription getLoadBalancerForName(String name, AmazonElasticLoadBalancing elbClient) { LoadBalancerDescription loadBalancer = null; try { DescribeLoadBalancersRequest request = new DescribeLoadBalancersRequest() .withLoadBalancerNames(name); DescribeLoadBalancersResult result = elbClient.describeLoadBalancers(request); if (result != null && result.getLoadBalancerDescriptions() != null) { loadBalancer = result.getLoadBalancerDescriptions().get(0); } } catch (AmazonServiceException e) { if (e.getErrorCode().equals("LoadBalancerNotFound")) { // if we can't find the ELB to delete, it's already gone log.warn("Could not find Load Balancer " + name, e); } } return loadBalancer; }
/** {@inheritDoc} */ @Override public Collection<InetSocketAddress> getRegisteredAddresses() throws IgniteSpiException { initClients(); List<String> instanceIds = new ArrayList<>(); DescribeLoadBalancersRequest req = new DescribeLoadBalancersRequest().withLoadBalancerNames(loadBalancerName); List<LoadBalancerDescription> descs = amazonELBClient.describeLoadBalancers(req).getLoadBalancerDescriptions(); for (LoadBalancerDescription desc : descs) { for (Instance instance : desc.getInstances()) instanceIds.add(instance.getInstanceId()); } DescribeInstancesRequest instReq = new DescribeInstancesRequest().withInstanceIds(instanceIds); List<Reservation> reservations = amazonEC2Client.describeInstances(instReq).getReservations(); List<InetSocketAddress> addrs = new ArrayList<>(); for (Reservation reservation : reservations) { List<com.amazonaws.services.ec2.model.Instance> instances = reservation.getInstances(); for (com.amazonaws.services.ec2.model.Instance instance : instances) addrs.add(new InetSocketAddress(instance.getPrivateIpAddress(), 0)); } return addrs; }