Example usage for com.amazonaws.services.autoscaling AmazonAutoScaling describeAutoScalingGroups

List of usage examples for com.amazonaws.services.autoscaling AmazonAutoScaling describeAutoScalingGroups

Introduction

In this page you can find the example usage for com.amazonaws.services.autoscaling AmazonAutoScaling describeAutoScalingGroups.

Prototype

DescribeAutoScalingGroupsResult describeAutoScalingGroups(
        DescribeAutoScalingGroupsRequest describeAutoScalingGroupsRequest);

Source Link

Document

Describes one or more Auto Scaling groups.

Usage

From source file:com.haskins.cloudtrailviewer.dialog.resourcedetail.detailpanels.AsGroupDetail.java

License:Open Source License

@Override
public String retrieveDetails(ResourceDetailRequest detailRequest) {

    String response = null;/*from www  . ja v a 2  s .  c  om*/

    try {

        AmazonAutoScaling asClient = new AmazonAutoScalingClient(credentials);
        asClient.setRegion(Region.getRegion(Regions.fromName(detailRequest.getRegion())));

        DescribeAutoScalingGroupsRequest request = new DescribeAutoScalingGroupsRequest();
        request.setAutoScalingGroupNames(Collections.singletonList(detailRequest.getResourceName()));

        DescribeAutoScalingGroupsResult result = asClient.describeAutoScalingGroups(request);
        buildUI(result);

    } catch (IllegalArgumentException | AmazonClientException e) {
        LOGGER.log(Level.WARNING, "Problem retrieving AS detail from AWS", e);
        response = e.getMessage();
    }

    return response;
}

From source file:com.netflix.dynomitemanager.sidecore.aws.AWSMembership.java

License:Apache License

@Override
public List<String> getRacMembership() {
    AmazonAutoScaling client = null;
    try {//from   www  .j a  va2 s .com
        client = getAutoScalingClient();
        DescribeAutoScalingGroupsRequest asgReq = new DescribeAutoScalingGroupsRequest()
                .withAutoScalingGroupNames(config.getASGName());
        DescribeAutoScalingGroupsResult res = client.describeAutoScalingGroups(asgReq);

        List<String> instanceIds = Lists.newArrayList();
        for (AutoScalingGroup asg : res.getAutoScalingGroups()) {
            for (Instance ins : asg.getInstances())
                if (!(ins.getLifecycleState().equalsIgnoreCase("Terminating")
                        || ins.getLifecycleState().equalsIgnoreCase("shutting-down")
                        || ins.getLifecycleState().equalsIgnoreCase("Terminated")))
                    instanceIds.add(ins.getInstanceId());
        }
        logger.info(String.format("Querying Amazon returned following instance in the ASG: %s --> %s",
                config.getRack(), StringUtils.join(instanceIds, ",")));
        return instanceIds;
    } finally {
        if (client != null)
            client.shutdown();
    }
}

From source file:com.netflix.dynomitemanager.sidecore.aws.AWSMembership.java

License:Apache License

@Override
public List<String> getCrossAccountRacMembership() {
    AmazonAutoScaling client = null;
    try {//from   w  ww .  j av a  2  s .  c o  m
        client = getCrossAccountAutoScalingClient();
        DescribeAutoScalingGroupsRequest asgReq = new DescribeAutoScalingGroupsRequest()
                .withAutoScalingGroupNames(config.getASGName());
        DescribeAutoScalingGroupsResult res = client.describeAutoScalingGroups(asgReq);

        List<String> instanceIds = Lists.newArrayList();
        for (AutoScalingGroup asg : res.getAutoScalingGroups()) {
            for (Instance ins : asg.getInstances())
                if (!(ins.getLifecycleState().equalsIgnoreCase("Terminating")
                        || ins.getLifecycleState().equalsIgnoreCase("shutting-down")
                        || ins.getLifecycleState().equalsIgnoreCase("Terminated")))
                    instanceIds.add(ins.getInstanceId());
        }
        logger.info(
                String.format("Querying Amazon returned following instance in the cross-account ASG: %s --> %s",
                        config.getRack(), StringUtils.join(instanceIds, ",")));
        return instanceIds;
    } finally {
        if (client != null)
            client.shutdown();
    }
}

From source file:com.netflix.dynomitemanager.sidecore.aws.AWSMembership.java

License:Apache License

/**
 * Actual membership AWS source of truth...
 *///from w  ww  .j av a2 s . co m
@Override
public int getRacMembershipSize() {
    AmazonAutoScaling client = null;
    try {
        client = getAutoScalingClient();
        DescribeAutoScalingGroupsRequest asgReq = new DescribeAutoScalingGroupsRequest()
                .withAutoScalingGroupNames(config.getASGName());
        DescribeAutoScalingGroupsResult res = client.describeAutoScalingGroups(asgReq);
        int size = 0;
        for (AutoScalingGroup asg : res.getAutoScalingGroups()) {
            size += asg.getMaxSize();
        }
        logger.info(String.format("Query on ASG returning %d instances", size));
        return size;
    } finally {
        if (client != null)
            client.shutdown();
    }
}

From source file:com.netflix.dynomitemanager.sidecore.aws.AWSMembership.java

License:Apache License

@Override
public void expandRacMembership(int count) {
    AmazonAutoScaling client = null;
    try {/*from ww w  . j a v  a2s.c  o m*/
        client = getAutoScalingClient();
        DescribeAutoScalingGroupsRequest asgReq = new DescribeAutoScalingGroupsRequest()
                .withAutoScalingGroupNames(config.getASGName());
        DescribeAutoScalingGroupsResult res = client.describeAutoScalingGroups(asgReq);
        AutoScalingGroup asg = res.getAutoScalingGroups().get(0);
        UpdateAutoScalingGroupRequest ureq = new UpdateAutoScalingGroupRequest();
        ureq.setAutoScalingGroupName(asg.getAutoScalingGroupName());
        ureq.setMinSize(asg.getMinSize() + 1);
        ureq.setMaxSize(asg.getMinSize() + 1);
        ureq.setDesiredCapacity(asg.getMinSize() + 1);
        client.updateAutoScalingGroup(ureq);
    } finally {
        if (client != null)
            client.shutdown();
    }
}

From source file:com.netflix.eureka.aws.AwsAsgUtil.java

License:Apache License

private AutoScalingGroup retrieveAutoScalingGroupCrossAccount(String asgAccount, String asgName) {
    logger.debug("Getting cross account ASG for asgName: " + asgName + ", asgAccount: " + asgAccount);

    Credentials credentials = stsCredentials.get(asgAccount);

    if (credentials == null || credentials.getExpiration().getTime() < System.currentTimeMillis() + 1000) {
        stsCredentials.put(asgAccount, initializeStsSession(asgAccount));
        credentials = stsCredentials.get(asgAccount);
    }//from  ww w.  j av a2  s  .co m

    ClientConfiguration clientConfiguration = new ClientConfiguration()
            .withConnectionTimeout(serverConfig.getASGQueryTimeoutMs());

    AmazonAutoScaling autoScalingClient = new AmazonAutoScalingClient(
            new BasicSessionCredentials(credentials.getAccessKeyId(), credentials.getSecretAccessKey(),
                    credentials.getSessionToken()),
            clientConfiguration);

    String region = clientConfig.getRegion();
    if (!region.equals("us-east-1")) {
        autoScalingClient.setEndpoint("autoscaling." + region + ".amazonaws.com");
    }

    DescribeAutoScalingGroupsRequest request = new DescribeAutoScalingGroupsRequest()
            .withAutoScalingGroupNames(asgName);
    DescribeAutoScalingGroupsResult result = autoScalingClient.describeAutoScalingGroups(request);
    List<AutoScalingGroup> asgs = result.getAutoScalingGroups();
    if (asgs.isEmpty()) {
        return null;
    } else {
        return asgs.get(0);
    }
}

From source file:com.netflix.eureka.util.AwsAsgUtil.java

License:Apache License

private AutoScalingGroup retrieveAutoScalingGroupCrossAccount(String asgAccount, String asgName) {
    logger.debug("Getting cross account ASG for asgName: " + asgName + ", asgAccount: " + asgAccount);

    Credentials credentials = stsCredentials.get(asgAccount);

    if (credentials == null || credentials.getExpiration().getTime() < System.currentTimeMillis() + 1000) {
        stsCredentials.put(asgAccount, initializeStsSession(asgAccount));
        credentials = stsCredentials.get(asgAccount);
    }/*from   w w w .jav  a2s. c om*/

    ClientConfiguration clientConfiguration = new ClientConfiguration()
            .withConnectionTimeout(eurekaConfig.getASGQueryTimeoutMs());

    AmazonAutoScaling autoScalingClient = new AmazonAutoScalingClient(
            new BasicSessionCredentials(credentials.getAccessKeyId(), credentials.getSecretAccessKey(),
                    credentials.getSessionToken()),
            clientConfiguration);

    String region = DiscoveryManager.getInstance().getEurekaClientConfig().getRegion();
    if (!region.equals("us-east-1")) {
        autoScalingClient.setEndpoint("autoscaling." + region + ".amazonaws.com");
    }

    DescribeAutoScalingGroupsRequest request = new DescribeAutoScalingGroupsRequest()
            .withAutoScalingGroupNames(asgName);
    DescribeAutoScalingGroupsResult result = autoScalingClient.describeAutoScalingGroups(request);
    List<AutoScalingGroup> asgs = result.getAutoScalingGroups();
    if (asgs.isEmpty()) {
        return null;
    } else {
        return asgs.get(0);
    }
}

From source file:com.netflix.priam.aws.AWSMembership.java

License:Apache License

@Override
public List<String> getRacMembership() {
    AmazonAutoScaling client = null;
    try {//from   w w w.  j  a v a 2s .c  om
        client = getAutoScalingClient();
        DescribeAutoScalingGroupsRequest asgReq = new DescribeAutoScalingGroupsRequest()
                .withAutoScalingGroupNames(config.getASGName());
        DescribeAutoScalingGroupsResult res = client.describeAutoScalingGroups(asgReq);

        List<String> instanceIds = Lists.newArrayList();
        for (AutoScalingGroup asg : res.getAutoScalingGroups()) {
            for (Instance ins : asg.getInstances())
                if (!(ins.getLifecycleState().equalsIgnoreCase("Terminating")
                        || ins.getLifecycleState().equalsIgnoreCase("shutting-down")
                        || ins.getLifecycleState().equalsIgnoreCase("Terminated")))
                    instanceIds.add(ins.getInstanceId());
        }
        logger.info(String.format("Querying Amazon returned following instance in the ASG: %s --> %s",
                config.getRac(), StringUtils.join(instanceIds, ",")));
        return instanceIds;
    } finally {
        if (client != null)
            client.shutdown();
    }
}

From source file:gobblin.aws.AWSSdkClient.java

License:Apache License

/***
 * Get list of {@link AutoScalingGroup}s for a given tag
 *
 * @param tag Tag to filter the auto scaling groups
 * @return List of {@link AutoScalingGroup}s qualifying the filter tag
 *//*from   w w  w. j ava 2  s.  c o m*/
public List<AutoScalingGroup> getAutoScalingGroupsWithTag(Tag tag) {

    final AmazonAutoScaling autoScaling = getAmazonAutoScalingClient();

    final DescribeAutoScalingGroupsRequest describeAutoScalingGroupsRequest = new DescribeAutoScalingGroupsRequest();

    final List<AutoScalingGroup> allAutoScalingGroups = autoScaling
            .describeAutoScalingGroups(describeAutoScalingGroupsRequest).getAutoScalingGroups();

    final List<AutoScalingGroup> filteredAutoScalingGroups = Lists.newArrayList();
    for (AutoScalingGroup autoScalingGroup : allAutoScalingGroups) {
        for (TagDescription tagDescription : autoScalingGroup.getTags()) {
            if (tagDescription.getKey().equalsIgnoreCase(tag.getKey())
                    && tagDescription.getValue().equalsIgnoreCase(tag.getValue())) {
                filteredAutoScalingGroups.add(autoScalingGroup);
            }
        }
    }

    return filteredAutoScalingGroups;
}