Search in sources :

Example 1 with DescribeLoadBalancersResult

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();
}
Also used : DescribeLoadBalancersResult(com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult) LoadBalancerDescription(com.amazonaws.services.elasticloadbalancing.model.LoadBalancerDescription) DescribeLoadBalancersRequest(com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersRequest) CompletionException(java.util.concurrent.CompletionException)

Example 2 with DescribeLoadBalancersResult

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);
}
Also used : DescribeTagsRequest(com.amazonaws.services.ec2.model.DescribeTagsRequest) DescribeTagsResult(com.amazonaws.services.ec2.model.DescribeTagsResult) Listener(com.amazonaws.services.elasticloadbalancing.model.Listener) AmazonEC2(com.amazonaws.services.ec2.AmazonEC2) ListenerDescription(com.amazonaws.services.elasticloadbalancing.model.ListenerDescription) ArrayList(java.util.ArrayList) List(java.util.List) LoadBalancerDescription(com.amazonaws.services.elasticloadbalancing.model.LoadBalancerDescription) Regions(com.amazonaws.regions.Regions) DescribeLoadBalancersResult(com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult) DescribeRegionsResult(com.amazonaws.services.ec2.model.DescribeRegionsResult) Region(com.amazonaws.services.ec2.model.Region) AmazonElasticLoadBalancing(com.amazonaws.services.elasticloadbalancing.AmazonElasticLoadBalancing) Test(org.junit.Test)

Example 3 with DescribeLoadBalancersResult

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"));
    });
}
Also used : DescribeLoadBalancersResult(com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult) AWSDeferredResultAsyncHandler(com.vmware.photon.controller.model.adapters.awsadapter.util.AWSDeferredResultAsyncHandler) LoadBalancerDescription(com.vmware.photon.controller.model.resources.LoadBalancerDescriptionService.LoadBalancerDescription) DescribeLoadBalancersRequest(com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersRequest)

Example 4 with DescribeLoadBalancersResult

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());
}
Also used : ListHostedZonesResult(com.amazonaws.services.route53.model.ListHostedZonesResult) ListMetricsRequest(com.amazonaws.services.cloudwatch.model.ListMetricsRequest) SortedSet(java.util.SortedSet) ScanResult(com.amazonaws.services.dynamodbv2.model.ScanResult) RunWith(org.junit.runner.RunWith) HashMap(java.util.HashMap) ListMetricsResult(com.amazonaws.services.cloudwatch.model.ListMetricsResult) DescribeLoadBalancersRequest(com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersRequest) Function(java.util.function.Function) TreeSet(java.util.TreeSet) PutMetricDataRequest(com.amazonaws.services.cloudwatch.model.PutMetricDataRequest) DescribeTargetGroupsRequest(com.amazonaws.services.elasticloadbalancingv2.model.DescribeTargetGroupsRequest) Flowable(io.reactivex.Flowable) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) AttributeValue(com.amazonaws.services.dynamodbv2.model.AttributeValue) DescribeInstancesRequest(com.amazonaws.services.ec2.model.DescribeInstancesRequest) Map(java.util.Map) DescribeAutoScalingGroupsResult(com.amazonaws.services.autoscaling.model.DescribeAutoScalingGroupsResult) ListClustersResult(com.amazonaws.services.elasticmapreduce.model.ListClustersResult) DescribeTargetGroupsResult(com.amazonaws.services.elasticloadbalancingv2.model.DescribeTargetGroupsResult) Iterator(java.util.Iterator) ScanRequest(com.amazonaws.services.dynamodbv2.model.ScanRequest) Publisher(org.reactivestreams.Publisher) DescribeInstancesResult(com.amazonaws.services.ec2.model.DescribeInstancesResult) Test(org.junit.Test) JUnit4(org.junit.runners.JUnit4) DescribeAutoScalingGroupsRequest(com.amazonaws.services.autoscaling.model.DescribeAutoScalingGroupsRequest) ListResourceRecordSetsResult(com.amazonaws.services.route53.model.ListResourceRecordSetsResult) ListHostedZonesRequest(com.amazonaws.services.route53.model.ListHostedZonesRequest) ListClustersRequest(com.amazonaws.services.elasticmapreduce.model.ListClustersRequest) DescribeLoadBalancersResult(com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult) PutMetricDataResult(com.amazonaws.services.cloudwatch.model.PutMetricDataResult) Assert(org.junit.Assert) ListResourceRecordSetsRequest(com.amazonaws.services.route53.model.ListResourceRecordSetsRequest) DescribeLoadBalancersResult(com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult) TreeSet(java.util.TreeSet) DescribeLoadBalancersRequest(com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersRequest) Test(org.junit.Test)

Example 5 with DescribeLoadBalancersResult

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;
}
Also used : DescribeLoadBalancersResult(com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult) AmazonElasticLoadBalancingClient(com.amazonaws.services.elasticloadbalancing.AmazonElasticLoadBalancingClient) DescribeLoadBalancersRequest(com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersRequest)

Aggregations

DescribeLoadBalancersResult (com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult)5 DescribeLoadBalancersRequest (com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersRequest)4 LoadBalancerDescription (com.amazonaws.services.elasticloadbalancing.model.LoadBalancerDescription)2 Test (org.junit.Test)2 Regions (com.amazonaws.regions.Regions)1 DescribeAutoScalingGroupsRequest (com.amazonaws.services.autoscaling.model.DescribeAutoScalingGroupsRequest)1 DescribeAutoScalingGroupsResult (com.amazonaws.services.autoscaling.model.DescribeAutoScalingGroupsResult)1 ListMetricsRequest (com.amazonaws.services.cloudwatch.model.ListMetricsRequest)1 ListMetricsResult (com.amazonaws.services.cloudwatch.model.ListMetricsResult)1 PutMetricDataRequest (com.amazonaws.services.cloudwatch.model.PutMetricDataRequest)1 PutMetricDataResult (com.amazonaws.services.cloudwatch.model.PutMetricDataResult)1 AttributeValue (com.amazonaws.services.dynamodbv2.model.AttributeValue)1 ScanRequest (com.amazonaws.services.dynamodbv2.model.ScanRequest)1 ScanResult (com.amazonaws.services.dynamodbv2.model.ScanResult)1 AmazonEC2 (com.amazonaws.services.ec2.AmazonEC2)1 DescribeInstancesRequest (com.amazonaws.services.ec2.model.DescribeInstancesRequest)1 DescribeInstancesResult (com.amazonaws.services.ec2.model.DescribeInstancesResult)1 DescribeRegionsResult (com.amazonaws.services.ec2.model.DescribeRegionsResult)1 DescribeTagsRequest (com.amazonaws.services.ec2.model.DescribeTagsRequest)1 DescribeTagsResult (com.amazonaws.services.ec2.model.DescribeTagsResult)1