List of usage examples for com.amazonaws.services.autoscaling.model AutoScalingGroup getDesiredCapacity
public Integer getDesiredCapacity()
The desired size of 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() }); }/* w w w .j a v a 2 s.com*/ 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.pinterest.arcee.autoscaling.AwsAutoScaleGroupManager.java
License:Apache License
@Override public void detachInstancesFromAutoScalingGroup(Collection<String> instances, String groupName, boolean decreaseSize) throws Exception { DescribeAutoScalingGroupsRequest request = new DescribeAutoScalingGroupsRequest(); request.setAutoScalingGroupNames(Arrays.asList(groupName)); DescribeAutoScalingGroupsResult result = aasClient.describeAutoScalingGroups(request); List<AutoScalingGroup> groups = result.getAutoScalingGroups(); if (groups.isEmpty()) { return;//from w ww.j a va 2 s.com } AutoScalingGroup group = groups.get(0); int curCapacity = group.getDesiredCapacity(); int minSize = group.getMinSize(); if (decreaseSize && (curCapacity == minSize)) { UpdateAutoScalingGroupRequest updateRequest = new UpdateAutoScalingGroupRequest(); updateRequest.setAutoScalingGroupName(groupName); updateRequest.setMinSize(minSize - 1); aasClient.updateAutoScalingGroup(updateRequest); } DetachInstancesRequest detachInstancesRequest = new DetachInstancesRequest(); detachInstancesRequest.withAutoScalingGroupName(groupName).setInstanceIds(instances); detachInstancesRequest.setShouldDecrementDesiredCapacity(decreaseSize); aasClient.detachInstances(detachInstancesRequest); }
From source file:com.pinterest.arcee.autoscaling.AwsAutoScaleGroupManager.java
License:Apache License
@Override public void increaseASGDesiredCapacityBySize(String groupName, int instanceCnt) throws Exception { DescribeAutoScalingGroupsRequest request = new DescribeAutoScalingGroupsRequest(); request.setAutoScalingGroupNames(Arrays.asList(groupName)); DescribeAutoScalingGroupsResult result = aasClient.describeAutoScalingGroups(request); List<AutoScalingGroup> groups = result.getAutoScalingGroups(); if (groups.isEmpty()) { return;//ww w . java 2 s. c o m } AutoScalingGroup group = groups.get(0); int curCapacity = group.getDesiredCapacity(); UpdateAutoScalingGroupRequest updateRequest = new UpdateAutoScalingGroupRequest(); updateRequest.setAutoScalingGroupName(groupName); updateRequest.setDesiredCapacity(curCapacity + instanceCnt); updateRequest.setMaxSize(Math.max(group.getMaxSize(), curCapacity + instanceCnt)); aasClient.updateAutoScalingGroup(updateRequest); }
From source file:com.pinterest.arcee.autoscaling.AwsAutoScalingManager.java
License:Apache License
@Override public AutoScalingGroupBean getAutoScalingGroupInfoByName(String groupName) throws Exception { AutoScalingGroupBean asgInfo = generateDefaultASGInfo(); AutoScalingGroup asgroup = getAutoScalingGroup(groupName); if (asgroup == null) { return asgInfo; }//from w w w .java 2 s . com // 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()); asgInfo.setDesiredCapacity(asgroup.getDesiredCapacity()); // 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; }
From source file:com.pinterest.arcee.autoscaling.AwsAutoScalingManager.java
License:Apache License
private void changeGroupCapacity(String groupName, int size, boolean increment) throws Exception { AutoScalingGroup group = getAutoScalingGroup(groupName); if (group == null) { return;/*from w ww . jav a 2s .c om*/ } int currCapacity = group.getDesiredCapacity(); int currMinSize = group.getMinSize(); int currMaxSize = group.getMaxSize(); if (increment) { currCapacity += size; if (currMaxSize == currMinSize) { currMinSize = currCapacity; currMaxSize = currCapacity; } else { currMaxSize = Math.max(currMaxSize, currCapacity); } } else { currCapacity = Math.max(currCapacity - size, 0); if (currMaxSize == currMinSize) { currMinSize = currCapacity; currMaxSize = currCapacity; } else { currMinSize = Math.min(currMinSize, currCapacity); } } UpdateAutoScalingGroupRequest updateRequest = new UpdateAutoScalingGroupRequest(); updateRequest.setAutoScalingGroupName(groupName); updateRequest.setDesiredCapacity(currCapacity); updateRequest.setMaxSize(currMaxSize); updateRequest.setMinSize(currMinSize); aasClient.updateAutoScalingGroup(updateRequest); }
From source file:com.pinterest.arcee.autoscaling.AwsAutoScalingManager.java
License:Apache License
@Override public void detachInstancesFromAutoScalingGroup(Collection<String> instances, String groupName, boolean decreaseSize) throws Exception { DescribeAutoScalingGroupsRequest request = new DescribeAutoScalingGroupsRequest(); request.setAutoScalingGroupNames(Collections.singletonList(groupName)); DescribeAutoScalingGroupsResult result = aasClient.describeAutoScalingGroups(request); List<AutoScalingGroup> groups = result.getAutoScalingGroups(); if (groups.isEmpty()) { return;//from www .j a va2 s.com } AutoScalingGroup group = groups.get(0); int curCapacity = group.getDesiredCapacity(); int minSize = group.getMinSize(); if (decreaseSize && (curCapacity == minSize)) { UpdateAutoScalingGroupRequest updateRequest = new UpdateAutoScalingGroupRequest(); updateRequest.setAutoScalingGroupName(groupName); updateRequest.setMinSize(minSize - 1); aasClient.updateAutoScalingGroup(updateRequest); } DetachInstancesRequest detachInstancesRequest = new DetachInstancesRequest(); detachInstancesRequest.withAutoScalingGroupName(groupName).setInstanceIds(instances); detachInstancesRequest.setShouldDecrementDesiredCapacity(decreaseSize); aasClient.detachInstances(detachInstancesRequest); }
From source file:com.pinterest.clusterservice.cm.AwsVmManager.java
License:Apache License
@Override public void launchHosts(String clusterName, int num) throws Exception { AutoScalingGroup group = getAutoScalingGroup(clusterName); if (group == null) { LOG.error(String.format("Failed to launch hosts: auto scaling group %s does not exist", clusterName)); throw new Exception( String.format("Failed to launch hosts: auto scaling group %s does not exist", clusterName)); }/*from w w w. j a v a 2 s.c om*/ try { UpdateAutoScalingGroupRequest updateRequest = new UpdateAutoScalingGroupRequest(); updateRequest.setAutoScalingGroupName(clusterName); updateRequest.setDesiredCapacity(group.getDesiredCapacity() + num); updateRequest.setMaxSize(Math.max(group.getDesiredCapacity(), group.getDesiredCapacity() + num)); aasClient.updateAutoScalingGroup(updateRequest); } catch (AmazonClientException e) { LOG.error(String.format("Failed to launch %d hosts to auto scaling group %s: %s", num, clusterName, e.getMessage())); throw new Exception(String.format("Failed to launch %d hosts to auto scaling group %s: %s", num, clusterName, e.getMessage())); } }
From source file:com.zotoh.cloudapi.aws.EC2AutoScale.java
License:Open Source License
private ScalingGroup toSG(AutoScalingGroup g) { ScalingGroup s = null;//from ww w .j av a 2s. c o m if (g != null) { s = new ScalingGroup(); s.setCooldown(g.getDefaultCooldown()); s.setCreationTimestamp(g.getCreatedTime().getTime()); s.setDescription(""); s.setMaxServers(g.getMaxSize()); s.setMinServers(g.getMinSize()); s.setName(g.getAutoScalingGroupName()); s.setProviderDataCenterIds(g.getAvailabilityZones().toArray(new String[0])); s.setProviderLaunchConfigurationId(g.getLaunchConfigurationName()); s.setProviderOwnerId(_svc.getCloud().getContext().getAccountNumber()); s.setProviderRegionId(_svc.getCloud().getContext().getRegionId()); s.setProviderScalingGroupId(s.getName()); List<com.amazonaws.services.autoscaling.model.Instance> lst = g.getInstances(); List<String> ls = new ArrayList<String>(); if (lst != null) for (int i = 0; i < lst.size(); ++i) { ls.add(lst.get(i).getInstanceId()); } s.setProviderServerIds(ls.toArray(new String[0])); s.setTargetCapacity(g.getDesiredCapacity()); } return s; }
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();/* w w w . j av a2s. c o m*/ }