Authored by qinchao

自动伸缩

@@ -119,13 +119,13 @@ public class AwsQueryService { @@ -119,13 +119,13 @@ public class AwsQueryService {
119 AmazonAutoScaling client = new AmazonAutoScalingClient(awsClientComp.getAWSCredentials()); 119 AmazonAutoScaling client = new AmazonAutoScalingClient(awsClientComp.getAWSCredentials());
120 client.setRegion(awsClientComp.getRegion(Regions.CN_NORTH_1)); 120 client.setRegion(awsClientComp.getRegion(Regions.CN_NORTH_1));
121 DescribeAutoScalingGroupsRequest request = null; 121 DescribeAutoScalingGroupsRequest request = null;
122 - /*if(StringUtils.isNotBlank(equalsName)){ 122 + if(StringUtils.isNotBlank(equalsName)){
123 request = new DescribeAutoScalingGroupsRequest() 123 request = new DescribeAutoScalingGroupsRequest()
124 .withAutoScalingGroupNames(equalsName); 124 .withAutoScalingGroupNames(equalsName);
125 - }else{*/ 125 + }else{
126 request = new DescribeAutoScalingGroupsRequest() 126 request = new DescribeAutoScalingGroupsRequest()
127 .withAutoScalingGroupNames(); 127 .withAutoScalingGroupNames();
128 - // } 128 + }
129 DescribeAutoScalingGroupsResult result = client .describeAutoScalingGroups(request); 129 DescribeAutoScalingGroupsResult result = client .describeAutoScalingGroups(request);
130 if(result == null){ 130 if(result == null){
131 return null; 131 return null;
@@ -144,41 +144,71 @@ public class AwsQueryService { @@ -144,41 +144,71 @@ public class AwsQueryService {
144 } 144 }
145 } 145 }
146 146
147 - if(!nameTag.equals(group.getAutoScalingGroupName())&&!equalsName.equals(group.getAutoScalingGroupName())){  
148 - continue;  
149 - }  
150 -  
151 - } 147 + if(nameTag.equals(group.getAutoScalingGroupName())||equalsName.equals(group.getAutoScalingGroupName())){
  148 + commGroup = new CommAutoScalingGroup();
  149 + commGroup.setScalingGroupName(group.getAutoScalingGroupName());
  150 + commGroup.setMinSize(group.getMinSize());
  151 + commGroup.setMaxSize(group.getMaxSize());
  152 + commGroup.setDesiredCapacity(group.getDesiredCapacity());
  153 +
  154 + if(CollectionUtils.isNotEmpty(group.getInstances())){
  155 + Collection<String> ids = new ArrayList<>();
  156 + Map<String, Boolean> idsMap = new HashMap<>();
  157 + for(com.amazonaws.services.autoscaling.model.Instance instance : group.getInstances()){
  158 + ids.add(instance.getInstanceId());
  159 + idsMap.put(instance.getInstanceId(),instance.getProtectedFromScaleIn());
  160 + }
  161 + //根据InstanceId获取详细信息
  162 + List<CommAutoScalingInstances> commInstancess = getDescribeInstances(ids, idsMap);
  163 + //计算出几台是受保护的机器,方便前台使用
  164 + if(CollectionUtils.isNotEmpty(commInstancess)){
  165 + int count = 0;
  166 + for(CommAutoScalingInstances awsInstance : commInstancess){
  167 + if("TRUE".equals(awsInstance.getProtectedFrom().toUpperCase())){
  168 + count += 1;
  169 + }
  170 + }
  171 + commGroup.setProtectedFromCount(count);
  172 + }
  173 + commGroup.setScalingInstancess(commInstancess);
152 174
153 - commGroup = new CommAutoScalingGroup();  
154 - commGroup.setScalingGroupName(group.getAutoScalingGroupName());  
155 - commGroup.setMinSize(group.getMinSize());  
156 - commGroup.setMaxSize(group.getMaxSize());  
157 - commGroup.setDesiredCapacity(group.getDesiredCapacity());  
158 -  
159 - if(CollectionUtils.isNotEmpty(group.getInstances())){  
160 - Collection<String> ids = new ArrayList<>();  
161 - Map<String, Boolean> idsMap = new HashMap<>();  
162 - for(com.amazonaws.services.autoscaling.model.Instance instance : group.getInstances()){  
163 - ids.add(instance.getInstanceId());  
164 - idsMap.put(instance.getInstanceId(),instance.getProtectedFromScaleIn()); 175 + commGroups.add(commGroup);
  176 + }
165 } 177 }
166 - //根据InstanceId获取详细信息  
167 - List<CommAutoScalingInstances> commInstancess = getDescribeInstances(ids, idsMap);  
168 - //计算出几台是受保护的机器,方便前台使用  
169 - if(CollectionUtils.isNotEmpty(commInstancess)){  
170 - int count = 0;  
171 - for(CommAutoScalingInstances awsInstance : commInstancess){  
172 - if("TRUE".equals(awsInstance.getProtectedFrom().toUpperCase())){  
173 - count += 1; 178 +
  179 + }else{
  180 + commGroup = new CommAutoScalingGroup();
  181 + commGroup.setScalingGroupName(group.getAutoScalingGroupName());
  182 + commGroup.setMinSize(group.getMinSize());
  183 + commGroup.setMaxSize(group.getMaxSize());
  184 + commGroup.setDesiredCapacity(group.getDesiredCapacity());
  185 +
  186 + if(CollectionUtils.isNotEmpty(group.getInstances())){
  187 + Collection<String> ids = new ArrayList<>();
  188 + Map<String, Boolean> idsMap = new HashMap<>();
  189 + for(com.amazonaws.services.autoscaling.model.Instance instance : group.getInstances()){
  190 + ids.add(instance.getInstanceId());
  191 + idsMap.put(instance.getInstanceId(),instance.getProtectedFromScaleIn());
  192 + }
  193 + //根据InstanceId获取详细信息
  194 + List<CommAutoScalingInstances> commInstancess = getDescribeInstances(ids, idsMap);
  195 + //计算出几台是受保护的机器,方便前台使用
  196 + if(CollectionUtils.isNotEmpty(commInstancess)){
  197 + int count = 0;
  198 + for(CommAutoScalingInstances awsInstance : commInstancess){
  199 + if("TRUE".equals(awsInstance.getProtectedFrom().toUpperCase())){
  200 + count += 1;
  201 + }
174 } 202 }
  203 + commGroup.setProtectedFromCount(count);
175 } 204 }
176 - commGroup.setProtectedFromCount(count);  
177 - }  
178 - commGroup.setScalingInstancess(commInstancess); 205 + commGroup.setScalingInstancess(commInstancess);
179 206
180 - commGroups.add(commGroup); 207 + commGroups.add(commGroup);
  208 + }
181 } 209 }
  210 +
  211 +
182 } 212 }
183 }catch (Exception e){ 213 }catch (Exception e){
184 DEBUG.error(" - AwsController - getAwsAutoScaling - error", e); 214 DEBUG.error(" - AwsController - getAwsAutoScaling - error", e);
@@ -137,7 +137,13 @@ public class CloudToolController { @@ -137,7 +137,13 @@ public class CloudToolController {
137 public BaseResponse getIpsByScalingGroupId(int cloudType,String groupName ,String groupId){ 137 public BaseResponse getIpsByScalingGroupId(int cloudType,String groupName ,String groupId){
138 BaseResponse response = new BaseResponse(); 138 BaseResponse response = new BaseResponse();
139 List<String> ipList = null; 139 List<String> ipList = null;
  140 +
140 if(1==cloudType){ 141 if(1==cloudType){
  142 + if(groupName==null||groupName.length()<=0){
  143 + response.setCode(300);
  144 + response.setMessage("aws伸缩组名字为空");
  145 + return response;
  146 + }
141 List<CommAutoScalingGroup> autoScalingGroups = awsQueryService.autoScalingConfig(groupName); 147 List<CommAutoScalingGroup> autoScalingGroups = awsQueryService.autoScalingConfig(groupName);
142 if(autoScalingGroups!=null&&autoScalingGroups.get(0)!=null&&autoScalingGroups.get(0).getScalingInstancess()!=null){ 148 if(autoScalingGroups!=null&&autoScalingGroups.get(0)!=null&&autoScalingGroups.get(0).getScalingInstancess()!=null){
143 ipList=new ArrayList<String>(); 149 ipList=new ArrayList<String>();