Example usage for com.amazonaws.services.autoscaling.model Instance getInstanceId

List of usage examples for com.amazonaws.services.autoscaling.model Instance getInstanceId

Introduction

In this page you can find the example usage for com.amazonaws.services.autoscaling.model Instance getInstanceId.

Prototype


public String getInstanceId() 

Source Link

Document

The ID of the instance.

Usage

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

License:Open Source License

private void buildUI(DescribeAutoScalingGroupsResult detail) {

    JTabbedPane tabs = new JTabbedPane();
    tabs.add("AS Group", primaryScrollPane);
    tabs.add("Tags", tagsScrollPane);

    this.add(tabs, BorderLayout.CENTER);

    List<AutoScalingGroup> groups = detail.getAutoScalingGroups();
    if (!groups.isEmpty()) {
        AutoScalingGroup group = groups.get(0);

        if (group.getAutoScalingGroupARN() != null) {
            primaryTableModel.addRow(new Object[] { "AutoScaling Group Arn", group.getAutoScalingGroupARN() });
        }/*from   ww  w  .j av  a 2 s  .c om*/
        if (group.getAutoScalingGroupName() != null) {
            primaryTableModel
                    .addRow(new Object[] { "AutoScaling Group Name", group.getAutoScalingGroupName() });
        }

        if (!group.getAvailabilityZones().isEmpty()) {

            StringBuilder azs = new StringBuilder();
            for (String az : group.getAvailabilityZones()) {
                azs.append(az).append(", ");
            }

            primaryTableModel.addRow(new Object[] { "Availability Zones", azs.toString() });
        }

        if (group.getCreatedTime() != null) {
            primaryTableModel.addRow(new Object[] { "Created", getDateString(group.getCreatedTime()) });
        }
        if (group.getDefaultCooldown() != null) {
            primaryTableModel.addRow(new Object[] { "Default Cooldown", group.getDefaultCooldown() });
        }
        if (group.getDesiredCapacity() != null) {
            primaryTableModel.addRow(new Object[] { "Desired Capacity", group.getDesiredCapacity() });
        }
        if (group.getHealthCheckGracePeriod() != null) {
            primaryTableModel
                    .addRow(new Object[] { "HealthCheck Grace Period", group.getHealthCheckGracePeriod() });
        }
        if (group.getHealthCheckType() != null) {
            primaryTableModel.addRow(new Object[] { "HealthCheck Type", group.getHealthCheckType() });
        }

        if (!group.getInstances().isEmpty()) {

            StringBuilder instances = new StringBuilder();
            for (Instance instance : group.getInstances()) {
                instances.append(instance.getInstanceId()).append(", ");
            }

            primaryTableModel.addRow(new Object[] { "Instances", instances.toString() });
        }

        if (group.getLaunchConfigurationName() != null) {
            primaryTableModel
                    .addRow(new Object[] { "Launch Configuration Name", group.getLaunchConfigurationName() });
        }

        if (!group.getLoadBalancerNames().isEmpty()) {

            StringBuilder instances = new StringBuilder();
            for (String instance : group.getLoadBalancerNames()) {
                instances.append(instance).append(", ");
            }

            primaryTableModel.addRow(new Object[] { "LoadBalancer names", instances.toString() });
        }

        if (group.getMaxSize() != null) {
            primaryTableModel.addRow(new Object[] { "Max Size", group.getMaxSize() });
        }
        if (group.getMinSize() != null) {
            primaryTableModel.addRow(new Object[] { "Min Size", group.getMinSize() });
        }
        if (group.getPlacementGroup() != null) {
            primaryTableModel.addRow(new Object[] { "Placement Group", group.getPlacementGroup() });
        }
        if (group.getVPCZoneIdentifier() != null) {
            primaryTableModel.addRow(new Object[] { "VPC Zone Identifier", group.getVPCZoneIdentifier() });
        }

        List<TagDescription> tags = group.getTags();
        for (TagDescription tag : tags) {
            tagsTableModel.addRow(new Object[] { tag.getKey(), tag.getValue() });
        }
    }
}

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

License:Apache License

@Override
public List<String> getRacMembership() {
    AmazonAutoScaling client = null;/*from ww w.jav  a  2 s .  co m*/
    try {
        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;// w  w w. j ava 2s  . com
    try {
        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.priam.aws.AWSMembership.java

License:Apache License

@Override
public List<String> getRacMembership() {
    AmazonAutoScaling client = null;//w ww. j  a v  a 2s. co m
    try {
        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:com.netflix.simianarmy.aws.chaos.ASGChaosCrawler.java

License:Apache License

@Override
public List<InstanceGroup> groups(String... names) {
    List<InstanceGroup> list = new LinkedList<InstanceGroup>();
    for (AutoScalingGroup asg : awsClient.describeAutoScalingGroups(names)) {
        InstanceGroup ig = new BasicInstanceGroup(asg.getAutoScalingGroupName(), Types.ASG, awsClient.region());
        for (Instance inst : asg.getInstances()) {
            ig.addInstance(inst.getInstanceId());
        }/*from  w w  w.  j a v  a  2 s .  co m*/
        list.add(ig);
    }
    return list;
}

From source file:com.netflix.simianarmy.aws.conformity.crawler.AWSClusterCrawler.java

License:Apache License

/**
 * In this implementation, every auto scaling group is considered a cluster.
 * @param clusterNames//from   w ww .j  a  v a  2s .  co m
 *          the cluster names
 * @return the list of clusters matching the names, when names are empty, return all clusters
 */
@Override
public List<Cluster> clusters(String... clusterNames) {
    List<Cluster> list = Lists.newArrayList();
    for (Map.Entry<String, AWSClient> entry : regionToAwsClient.entrySet()) {
        String region = entry.getKey();
        AWSClient awsClient = entry.getValue();
        Set<String> asgInstances = Sets.newHashSet();
        LOGGER.info(String.format("Crawling clusters in region %s", region));
        for (AutoScalingGroup asg : awsClient.describeAutoScalingGroups(clusterNames)) {
            List<String> instances = Lists.newArrayList();
            for (Instance instance : asg.getInstances()) {
                instances.add(instance.getInstanceId());
                asgInstances.add(instance.getInstanceId());
            }
            com.netflix.simianarmy.conformity.AutoScalingGroup conformityAsg = new com.netflix.simianarmy.conformity.AutoScalingGroup(
                    asg.getAutoScalingGroupName(), instances.toArray(new String[instances.size()]));

            for (SuspendedProcess sp : asg.getSuspendedProcesses()) {
                if ("AddToLoadBalancer".equals(sp.getProcessName())) {
                    LOGGER.info(String.format("ASG %s is suspended: %s", asg.getAutoScalingGroupName(),
                            asg.getSuspendedProcesses()));
                    conformityAsg.setSuspended(true);
                }
            }
            Cluster cluster = new Cluster(asg.getAutoScalingGroupName(), region, conformityAsg);
            updateCluster(cluster);
            list.add(cluster);
        }
        //Cluster containing all solo instances
        Set<String> instances = Sets.newHashSet();
        for (com.amazonaws.services.ec2.model.Instance awsInstance : awsClient.describeInstances()) {
            if (!asgInstances.contains(awsInstance.getInstanceId())) {
                LOGGER.info(String.format("Adding instance %s to soloInstances cluster.",
                        awsInstance.getInstanceId()));
                instances.add(awsInstance.getInstanceId());
            }
        }
        //Only create cluster if we have solo instances.
        if (!instances.isEmpty()) {
            Cluster cluster = new Cluster("SoloInstances", region, instances);
            updateCluster(cluster);
            list.add(cluster);
        }
    }
    return list;
}

From source file:com.netflix.simianarmy.aws.janitor.crawler.ASGJanitorCrawler.java

License:Apache License

private List<Resource> getASGResources(String... asgNames) {
    AWSClient awsClient = getAWSClient();

    List<LaunchConfiguration> launchConfigurations = awsClient.describeLaunchConfigurations();
    for (LaunchConfiguration lc : launchConfigurations) {
        nameToLaunchConfig.put(lc.getLaunchConfigurationName(), lc);
    }//w w  w  . java 2 s  .  c om

    List<Resource> resources = new LinkedList<Resource>();
    for (AutoScalingGroup asg : awsClient.describeAutoScalingGroups(asgNames)) {
        Resource asgResource = new AWSResource().withId(asg.getAutoScalingGroupName())
                .withResourceType(AWSResourceType.ASG).withRegion(awsClient.region())
                .withLaunchTime(asg.getCreatedTime());
        for (TagDescription tag : asg.getTags()) {
            asgResource.setTag(tag.getKey(), tag.getValue());
        }
        asgResource.setDescription(String.format("%d instances", asg.getInstances().size()));
        asgResource.setOwnerEmail(getOwnerEmailForResource(asgResource));
        if (asg.getStatus() != null) {
            ((AWSResource) asgResource).setAWSResourceState(asg.getStatus());
        }
        Integer maxSize = asg.getMaxSize();
        if (maxSize != null) {
            asgResource.setAdditionalField(ASG_FIELD_MAX_SIZE, String.valueOf(maxSize));
        }
        // Adds instances and ELBs as additional fields.
        List<String> instances = new ArrayList<String>();
        for (Instance instance : asg.getInstances()) {
            instances.add(instance.getInstanceId());
        }
        asgResource.setAdditionalField(ASG_FIELD_INSTANCES, StringUtils.join(instances, ","));
        asgResource.setAdditionalField(ASG_FIELD_ELBS, StringUtils.join(asg.getLoadBalancerNames(), ","));
        String lcName = asg.getLaunchConfigurationName();
        LaunchConfiguration lc = nameToLaunchConfig.get(lcName);
        if (lc != null) {
            asgResource.setAdditionalField(ASG_FIELD_LC_NAME, lcName);
        }
        if (lc != null && lc.getCreatedTime() != null) {
            asgResource.setAdditionalField(ASG_FIELD_LC_CREATION_TIME,
                    String.valueOf(lc.getCreatedTime().getTime()));
        }
        // sets the field for the time when the ASG's traffic is suspended from ELB
        for (SuspendedProcess sp : asg.getSuspendedProcesses()) {
            if ("AddToLoadBalancer".equals(sp.getProcessName())) {
                String suspensionTime = getSuspensionTimeString(sp.getSuspensionReason());
                if (suspensionTime != null) {
                    LOGGER.info(String.format("Suspension time of ASG %s is %s", asg.getAutoScalingGroupName(),
                            suspensionTime));
                    asgResource.setAdditionalField(ASG_FIELD_SUSPENSION_TIME, suspensionTime);
                    break;
                }
            }
        }
        resources.add(asgResource);
    }
    return resources;
}

From source file:com.netflix.turbine.discovery.AwsUtil.java

License:Apache License

/**
 * Convert from AWS ASG Instances to Turbine Instances
 * /*  w ww. j  a v a2  s .c o m*/
 * @param asgName
 * @return list of Turbine Instances (not AWS Instances)
 */
public List<Instance> getTurbineInstances(String asgName) {
    List<com.amazonaws.services.autoscaling.model.Instance> awsInstances = getAutoScalingGroup(asgName)
            .getInstances();

    Collection<String> instanceIds = Collections2.transform(awsInstances,
            new Function<com.amazonaws.services.autoscaling.model.Instance, String>() {
                @Override
                public String apply(com.amazonaws.services.autoscaling.model.Instance asgInstance) {
                    return asgInstance.getInstanceId();
                }
            });

    DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest();
    describeInstancesRequest.withInstanceIds(instanceIds);

    DescribeInstancesResult describeInstancesResult = ec2Client.describeInstances(describeInstancesRequest);
    List<Reservation> reservations = describeInstancesResult.getReservations();
    List<Instance> turbineInstances = new ArrayList<Instance>();

    // add all instances from each of the reservations - after converting to Turbine instance
    for (Reservation reservation : reservations) {
        List<com.amazonaws.services.ec2.model.Instance> ec2Instances = reservation.getInstances();
        for (com.amazonaws.services.ec2.model.Instance ec2Instance : ec2Instances) {
            String hostname = ec2Instance.getPublicDnsName();

            String statusName = ec2Instance.getState().getName();
            boolean status = statusName.equals("running"); // see com.amazonaws.services.ec2.model.InstanceState for values

            Instance turbineInstance = new Instance(hostname, asgName, status);
            turbineInstance.getAttributes().put("asg", asgName);

            turbineInstances.add(turbineInstance);
        }
    }

    return turbineInstances;
}

From source file:com.pinterest.arcee.autoscaling.AwsAutoScaleGroupManager.java

License:Apache License

@Override
public void deleteAutoScalingGroup(String groupName, boolean detachInstances) throws Exception {
    // step 1: get the auto scaling instances information
    if (detachInstances) {
        DescribeAutoScalingGroupsRequest request = new DescribeAutoScalingGroupsRequest();
        request.setAutoScalingGroupNames(Arrays.asList(groupName));
        DescribeAutoScalingGroupsResult result = aasClient.describeAutoScalingGroups(request);
        List<AutoScalingGroup> groups = result.getAutoScalingGroups();
        if (groups.isEmpty()) {
            return;
        }//w w  w .  ja v  a2s.c  o m
        AutoScalingGroup group = groups.get(0);

        List<Instance> instances = group.getInstances();
        List<String> ids = new LinkedList<>();
        for (Instance instance : instances) {
            ids.add(instance.getInstanceId());
        }

        // step 2: update the autoscaling min size to 0
        UpdateAutoScalingGroupRequest updateAutoScalingGroupRequest = new UpdateAutoScalingGroupRequest();
        updateAutoScalingGroupRequest.setAutoScalingGroupName(groupName);
        updateAutoScalingGroupRequest.setMinSize(0);
        aasClient.updateAutoScalingGroup(updateAutoScalingGroupRequest);

        // step 3: detach instances from auto scaling group
        if (!ids.isEmpty()) {
            for (int i = 0; i < ids.size(); i += MAX_DETACH_INSTANCE_LENGTH) {
                DetachInstancesRequest detachInstancesRequest = new DetachInstancesRequest();
                detachInstancesRequest.setAutoScalingGroupName(groupName);
                detachInstancesRequest.setShouldDecrementDesiredCapacity(true);
                detachInstancesRequest
                        .setInstanceIds(ids.subList(i, Math.min(i + MAX_DETACH_INSTANCE_LENGTH, ids.size())));
                aasClient.detachInstances(detachInstancesRequest);
            }
        }
    }

    // step 4 delete auto scaling group
    DeleteAutoScalingGroupRequest deleteAutoScalingGroupRequest = new DeleteAutoScalingGroupRequest();
    deleteAutoScalingGroupRequest.setAutoScalingGroupName(groupName);
    deleteAutoScalingGroupRequest.setForceDelete(true);
    aasClient.deleteAutoScalingGroup(deleteAutoScalingGroupRequest);
}

From source file:com.pinterest.arcee.autoscaling.AwsAutoScaleGroupManager.java

License:Apache License

@Override
public AutoScalingGroupBean getAutoScalingGroupInfoByName(String groupName) throws Exception {
    AutoScalingGroupBean asgInfo = generateDefaultASGInfo();
    DescribeAutoScalingGroupsRequest request = new DescribeAutoScalingGroupsRequest();
    request.setAutoScalingGroupNames(Arrays.asList(groupName));
    DescribeAutoScalingGroupsResult result = aasClient.describeAutoScalingGroups(request);
    List<AutoScalingGroup> asgroups = result.getAutoScalingGroups();

    if (asgroups.isEmpty()) {
        return asgInfo;
    }/*from  w w  w.  j a va 2  s.com*/

    AutoScalingGroup asgroup = asgroups.get(0);
    // set autoscaling group status
    List<SuspendedProcess> suspendedProcesses = asgroup.getSuspendedProcesses();
    HashSet<String> processName = new HashSet<>();
    for (SuspendedProcess process : suspendedProcesses) {
        processName.add(process.getProcessName());
    }
    if (processName.contains(PROCESS_ALARMNOTIFICATION) && processName.contains(PROCESS_SCHEDULEDACTIONS)) {
        asgInfo.setStatus(ASGStatus.DISABLED);
    } else {
        asgInfo.setStatus(ASGStatus.ENABLED);
    }

    asgInfo.setMinSize(asgroup.getMinSize());
    asgInfo.setMaxSize(asgroup.getMaxSize());
    // TODO this is dangerous that we are using the same value of TerminationPolicy
    String policy = asgroup.getTerminationPolicies().isEmpty() ? "Default"
            : new String(asgroup.getTerminationPolicies().get(0).getBytes());
    asgInfo.setTerminationPolicy(
            AutoScalingTerminationPolicy.valueOf(AutoScalingTerminationPolicy.class, policy));

    List<Instance> instances = asgroup.getInstances();
    for (Instance instance : instances) {
        if (instance.getInstanceId() != null) {
            asgInfo.addToInstances(instance.getInstanceId());
        }
    }
    return asgInfo;
}