List of usage examples for com.amazonaws.services.autoscaling.model AutoScalingGroup getLoadBalancerNames
public java.util.List<String> getLoadBalancerNames()
One or more load balancers associated with the group.
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() }); }/*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.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); }//from ww w.j a va2 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.simianarmy.aws.janitor.crawler.ELBJanitorCrawler.java
License:Apache License
private Map<String, List<String>> buildELBtoASGMap() { AWSClient awsClient = getAWSClient(); LOGGER.info(String.format("Getting all ELBs associated with ASGs in region %s", awsClient.region())); List<AutoScalingGroup> autoScalingGroupList = awsClient.describeAutoScalingGroups(); HashMap<String, List<String>> asgMap = new HashMap<>(); for (AutoScalingGroup asg : autoScalingGroupList) { String asgName = asg.getAutoScalingGroupName(); if (asg.getLoadBalancerNames() != null) { for (String elbName : asg.getLoadBalancerNames()) { List<String> asgList = asgMap.get(elbName); if (asgList == null) { asgList = new ArrayList<>(); asgMap.put(elbName, asgList); }/*from w w w .j a va2 s.c om*/ asgList.add(asgName); LOGGER.debug(String.format("Found ASG %s associated with ELB %s", asgName, elbName)); } } } return asgMap; }
From source file:com.netflix.spinnaker.clouddriver.aws.deploy.handlers.MigrateServerGroupStrategy.java
License:Apache License
protected List<MigrateLoadBalancerResult> generateTargetLoadBalancers(AutoScalingGroup sourceGroup) { return sourceGroup.getLoadBalancerNames().stream().map(this::getMigrateLoadBalancerResult) .collect(Collectors.toList()); }
From source file:com.netflix.spinnaker.clouddriver.aws.event.DefaultAfterResizeEventHandler.java
License:Apache License
/** * There is an opportunity to expedite a resize to zero by explicitly terminating instances * (server group _must not_ be attached to a load balancer nor have any life cycle hooks) *///from w ww. j a v a 2s.c o m @Override public void handle(AfterResizeEvent event) { AutoScalingGroup autoScalingGroup = event.getAutoScalingGroup(); if (event.getCapacity() == null || event.getCapacity().getDesired() == null) { return; } if (event.getCapacity().getDesired() > 0) { return; } if (!autoScalingGroup.getLoadBalancerNames().isEmpty() || !autoScalingGroup.getTargetGroupARNs().isEmpty()) { event.getTask().updateStatus(PHASE, "Skipping explicit instance termination, server group is attached to one or more load balancers"); return; } try { List<LifecycleHook> existingLifecycleHooks = fetchTerminatingLifecycleHooks( event.getAmazonAutoScaling(), autoScalingGroup.getAutoScalingGroupName()); if (!existingLifecycleHooks.isEmpty()) { event.getTask().updateStatus(PHASE, "Skipping explicit instance termination, server group has one or more lifecycle hooks"); return; } } catch (Exception e) { log.error("Unable to fetch lifecycle hooks (serverGroupName: {}, arn: {})", autoScalingGroup.getAutoScalingGroupName(), autoScalingGroup.getAutoScalingGroupARN(), e); event.getTask().updateStatus(PHASE, String.format( "Skipping explicit instance termination, unable to fetch lifecycle hooks (reason: '%s')", e.getMessage())); return; } terminateInstancesInAutoScalingGroup(event.getTask(), event.getAmazonEC2(), event.getAutoScalingGroup()); }
From source file:org.xmlsh.aws.asDescribeGroups.java
License:BSD License
private void write(AutoScalingGroup group) throws XMLStreamException { startElement("group"); attribute("group-arn", group.getAutoScalingGroupARN()); attribute("name", group.getAutoScalingGroupName()); attribute("create-time", group.getCreatedTime()); attribute("default-cooldown", group.getDefaultCooldown()); attribute("desired-capacity", group.getDesiredCapacity()); attribute("health-check-grace-period", group.getHealthCheckGracePeriod()); attribute("health-check-type", group.getHealthCheckType()); attribute("launch-configuration-name", group.getLaunchConfigurationName()); attribute("max-size", group.getMaxSize()); attribute("min-size", group.getMinSize()); attribute("placement-group", group.getPlacementGroup()); attribute("status", group.getStatus()); attribute("vpc-zone-id", group.getVPCZoneIdentifier()); writeStringList("termination-policies", "termination-policy", "name", group.getTerminationPolicies()); writeZones(group.getAvailabilityZones()); writeMetrics(group.getEnabledMetrics()); writeInstances(group.getInstances()); writeELBNames(group.getLoadBalancerNames()); writeSuspendedProcesses(group.getSuspendedProcesses()); writeTagDescriptions(group.getTags()); endElement();/*ww w . j a va2s .c om*/ }
From source file:tools.descartes.bungee.cloud.aws.AWSImpl.java
License:Apache License
AutoScalingGroup getAutoScaleGroupForHostName(String hostName) { AutoScalingGroup autoScaleGroup = null; LoadBalancerDescription lb = getLoadBalancerForHostName(hostName); if (lb != null) { DescribeAutoScalingGroupsResult describeAutoScalingGroups = autoScale.describeAutoScalingGroups(); for (AutoScalingGroup group : describeAutoScalingGroups.getAutoScalingGroups()) { if (group.getLoadBalancerNames().contains(lb.getLoadBalancerName())) { autoScaleGroup = group;//from w w w. j a va 2 s .co m } } } return autoScaleGroup; }