use of com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult in project photon-model by vmware.
the class AWSLoadBalancerServiceTest method getAwsLoadBalancer.
private LoadBalancerDescription getAwsLoadBalancer(String name) {
DescribeLoadBalancersRequest describeRequest = new DescribeLoadBalancersRequest().withLoadBalancerNames(name);
DescribeLoadBalancersResult describeResult = null;
try {
describeResult = this.client.describeLoadBalancers(describeRequest);
} catch (Exception e) {
this.host.log("Exception describing load balancers with name '%s': %s", name, e.toString());
}
Collection<LoadBalancerDescription> lbs = describeResult != null ? describeResult.getLoadBalancerDescriptions() : null;
if (lbs == null || lbs.isEmpty()) {
return null;
}
if (lbs.size() > 1) {
throw new IllegalStateException("More than one load balancers found with name '" + name + "'.");
}
return lbs.iterator().next();
}
use of com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult in project chassis by Kixeye.
the class ServerInstanceContextTest method testValidContext.
@Test
public void testValidContext() {
final String region = Regions.US_WEST_2.getName();
final String instanceId = RandomStringUtils.random(20, "abcdefghi");
final String availabilityZone = region + RandomStringUtils.random(20, "abcdefghi");
final String environment = RandomStringUtils.random(20, "abcdefghi");
final String userData = new UserData(environment).toString();
final String elbName = environment + "-Zookeeper";
final String exhibitorUrl = "http://" + elbName + "-" + region + ".aws.amazon.com";
final int exhibitorPort = 80;
final String version = "1.0.0";
Ec2MetadataClient ec2MetadataClient = EasyMock.createMock(Ec2MetadataClient.class);
EasyMock.expect(ec2MetadataClient.getAvailabilityZone()).andAnswer(new IAnswer<String>() {
@Override
public String answer() throws Throwable {
return availabilityZone;
}
});
EasyMock.expect(ec2MetadataClient.getInstanceId()).andAnswer(new IAnswer<String>() {
@Override
public String answer() throws Throwable {
return instanceId;
}
});
EasyMock.expect(ec2MetadataClient.getUserData()).andAnswer(new IAnswer<String>() {
@Override
public String answer() throws Throwable {
return userData;
}
});
EasyMock.expect(ec2MetadataClient.getPrivateIpAddress()).andAnswer(new IAnswer<String>() {
@Override
public String answer() throws Throwable {
return "127.0.0.1";
}
});
EasyMock.expect(ec2MetadataClient.getPublicIpAddress()).andAnswer(new IAnswer<String>() {
@Override
public String answer() throws Throwable {
return "127.0.0.1";
}
});
AmazonEC2 amazonEC2 = EasyMock.createMock(AmazonEC2.class);
EasyMock.expect(amazonEC2.describeRegions()).andAnswer(new IAnswer<DescribeRegionsResult>() {
@Override
public DescribeRegionsResult answer() throws Throwable {
DescribeRegionsResult result = new DescribeRegionsResult();
List<Region> regions = new ArrayList<>();
for (Regions region : Regions.values()) {
Region r = new Region();
r.setRegionName(region.getName());
regions.add(r);
}
result.setRegions(regions);
return result;
}
});
EasyMock.expect(amazonEC2.describeTags(EasyMock.anyObject(DescribeTagsRequest.class))).andAnswer(new IAnswer<DescribeTagsResult>() {
@Override
public DescribeTagsResult answer() throws Throwable {
return new DescribeTagsResult();
}
});
com.amazonaws.regions.Region r = com.amazonaws.regions.Region.getRegion(Regions.fromName(region));
amazonEC2.setRegion(eqRegion(r));
EasyMock.expectLastCall();
AmazonElasticLoadBalancing amazonElasticLoadBalancing = EasyMock.createMock(AmazonElasticLoadBalancing.class);
EasyMock.expect(amazonElasticLoadBalancing.describeLoadBalancers()).andAnswer(new IAnswer<DescribeLoadBalancersResult>() {
@Override
public DescribeLoadBalancersResult answer() throws Throwable {
DescribeLoadBalancersResult result = new DescribeLoadBalancersResult();
List<LoadBalancerDescription> loadBalancers = new ArrayList<>();
LoadBalancerDescription lb1 = new LoadBalancerDescription();
lb1.setDNSName(exhibitorUrl);
lb1.setLoadBalancerName(elbName);
List<ListenerDescription> listenerDescriptions = new ArrayList<>();
ListenerDescription httpListenerDescription = new ListenerDescription();
Listener httpListener = new Listener();
httpListener.setProtocol("HTTP");
httpListener.setLoadBalancerPort(exhibitorPort);
httpListener.setInstancePort(8080);
httpListenerDescription.setListener(httpListener);
ListenerDescription httpsListenerDescription = new ListenerDescription();
Listener httpsListener = new Listener();
httpsListener.setProtocol("HTTPS");
httpsListener.setLoadBalancerPort(443);
httpsListener.setInstancePort(8080);
httpsListenerDescription.setListener(httpListener);
listenerDescriptions.add(httpListenerDescription);
listenerDescriptions.add(httpsListenerDescription);
lb1.setListenerDescriptions(listenerDescriptions);
loadBalancers.add(lb1);
result.setLoadBalancerDescriptions(loadBalancers);
return result;
}
});
amazonElasticLoadBalancing.setRegion(eqRegion(r));
EasyMock.expectLastCall();
EasyMock.replay(ec2MetadataClient, amazonEC2, amazonElasticLoadBalancing);
ServerInstanceContext context = new ServerInstanceContext(ec2MetadataClient, amazonEC2, amazonElasticLoadBalancing);
Assert.assertEquals(region, context.getRegion());
Assert.assertEquals(instanceId, context.getInstanceId());
Assert.assertEquals(availabilityZone, context.getAvailabilityZone());
Assert.assertEquals(environment, context.getEnvironment());
Assert.assertEquals(exhibitorUrl, context.getExhibitorHost());
Assert.assertEquals(exhibitorPort, context.getExhibitorPort());
Assert.assertNull(context.getAppName());
EasyMock.verify(ec2MetadataClient, amazonEC2, amazonElasticLoadBalancing);
EasyMock.reset(amazonEC2, amazonElasticLoadBalancing);
amazonEC2.shutdown();
EasyMock.expectLastCall();
amazonElasticLoadBalancing.shutdown();
EasyMock.expectLastCall();
String name = RandomStringUtils.random(20, "abcdefghi");
EasyMock.replay(amazonEC2, amazonElasticLoadBalancing);
context.setAppName(name);
context.setVersion(version);
Assert.assertEquals(name, context.getAppName());
context.shutdown();
EasyMock.verify(ec2MetadataClient, amazonEC2, amazonElasticLoadBalancing);
}
use of com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult in project photon-model by vmware.
the class AWSLoadBalancerService method getAWSLoadBalancer.
private DeferredResult<AWSLoadBalancerContext> getAWSLoadBalancer(AWSLoadBalancerContext context) {
DescribeLoadBalancersRequest describeRequest = new DescribeLoadBalancersRequest().withLoadBalancerNames(context.loadBalancerStateExpanded.name);
String message = "Describing AWS load balancer [" + context.loadBalancerStateExpanded.name + "].";
AWSDeferredResultAsyncHandler<DescribeLoadBalancersRequest, DescribeLoadBalancersResult> handler = new AWSDeferredResultAsyncHandler<>(this, message);
context.client.describeLoadBalancersAsync(describeRequest, handler);
return handler.toDeferredResult().thenCompose(result -> {
List<com.amazonaws.services.elasticloadbalancing.model.LoadBalancerDescription> lbs = result.getLoadBalancerDescriptions();
if (lbs != null && !lbs.isEmpty() && lbs.size() == 1) {
context.registeredInstances = lbs.iterator().next().getInstances();
return DeferredResult.completed(context);
}
return DeferredResult.failed(new IllegalStateException("Unable to describe load balancer with name '" + context.loadBalancerStateExpanded.name + "' for update"));
});
}
use of com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult in project iep by Netflix.
the class PaginationTest method elb.
@Test
public void elb() throws Exception {
SortedSet<String> pages = newPageSet(5);
final Iterator<String> reqIt = pages.iterator();
final Iterator<String> resIt = pages.iterator();
Function<DescribeLoadBalancersRequest, DescribeLoadBalancersResult> f = r -> {
if (r.getMarker() != null) {
Assert.assertEquals(reqIt.next(), r.getMarker());
}
return new DescribeLoadBalancersResult().withNextMarker(resIt.hasNext() ? resIt.next() : null);
};
Publisher<DescribeLoadBalancersResult> publisher = Pagination.createPublisher(new DescribeLoadBalancersRequest(), f);
Iterable<String> iter = Flowable.fromPublisher(publisher).filter(r -> r.getNextMarker() != null).map(DescribeLoadBalancersResult::getNextMarker).blockingIterable();
SortedSet<String> results = new TreeSet<>();
for (String s : iter) {
results.add(s);
}
Assert.assertEquals(pages, results);
Assert.assertFalse(reqIt.hasNext());
}
use of com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult in project SimianArmy by Netflix.
the class AWSClient method describeElasticLoadBalancers.
/**
* Describe a set of specific ELBs.
*
* @param names the ELB names
* @return the ELBs
*/
public List<LoadBalancerDescription> describeElasticLoadBalancers(String... names) {
if (names == null || names.length == 0) {
LOGGER.info(String.format("Getting all ELBs in region %s.", region));
} else {
LOGGER.info(String.format("Getting ELBs for %d names in region %s.", names.length, region));
}
AmazonElasticLoadBalancingClient elbClient = elbClient();
DescribeLoadBalancersRequest request = new DescribeLoadBalancersRequest().withLoadBalancerNames(names);
DescribeLoadBalancersResult result = elbClient.describeLoadBalancers(request);
List<LoadBalancerDescription> elbs = result.getLoadBalancerDescriptions();
LOGGER.info(String.format("Got %d ELBs in region %s.", elbs.size(), region));
return elbs;
}
Aggregations