|
|
package com.monitor.awstools.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.amazonaws.regions.Regions;
|
|
|
import com.amazonaws.services.ec2.model.DescribeInstancesRequest;
|
|
|
import com.amazonaws.services.ec2.model.DescribeInstancesResult;
|
...
|
...
|
@@ -11,6 +12,7 @@ import com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersRe |
|
|
import com.amazonaws.services.elasticloadbalancing.model.DescribeLoadBalancersResult;
|
|
|
import com.amazonaws.services.elasticloadbalancing.model.ListenerDescription;
|
|
|
import com.amazonaws.services.elasticloadbalancing.model.LoadBalancerDescription;
|
|
|
import com.amazonaws.services.elasticloadbalancingv2.model.LoadBalancer;
|
|
|
import com.monitor.awstools.comp.AWSClientComp;
|
|
|
import com.monitor.awstools.service.AwsLbService;
|
|
|
import com.monitor.cloudtools.model.CommLbBackends;
|
...
|
...
|
@@ -42,55 +44,94 @@ public class AwsLbServiceImpl implements AwsLbService { |
|
|
@Override
|
|
|
public List<CommLbInstances> getLbInstances() {
|
|
|
List<CommLbInstances> listCommInstances = null;
|
|
|
List<CommLbBackends> listCommBackends = null;
|
|
|
CommLbInstances commInstances = null;
|
|
|
CommLbBackends commBackends = null;
|
|
|
|
|
|
try{
|
|
|
com.amazonaws.services.elasticloadbalancingv2.AmazonElasticLoadBalancing client2 = new com.amazonaws.services.elasticloadbalancingv2.AmazonElasticLoadBalancingClient(awsClientComp.getAWSCredentials());
|
|
|
client2.setRegion(awsClientComp.getRegion(Regions.CN_NORTH_1));
|
|
|
com.amazonaws.services.elasticloadbalancingv2.model.DescribeLoadBalancersRequest request2 = new com.amazonaws.services.elasticloadbalancingv2.model.DescribeLoadBalancersRequest();
|
|
|
com.amazonaws.services.elasticloadbalancingv2.model.DescribeLoadBalancersResult result2 = client2.describeLoadBalancers(request2);
|
|
|
String aa = JSON.toJSONString(result2);
|
|
|
if(CollectionUtils.isNotEmpty(result2.getLoadBalancers())){
|
|
|
List<LoadBalancer> listBalancer = result2.getLoadBalancers();
|
|
|
if(CollectionUtils.isNotEmpty(listBalancer)){
|
|
|
listCommInstances = new ArrayList<>();
|
|
|
for(LoadBalancer balancer : listBalancer){
|
|
|
commInstances = new CommLbInstances();
|
|
|
commInstances.setCloudType(1);
|
|
|
if("internet-facing".equals(balancer.getScheme())){
|
|
|
commInstances.setNetType(1);
|
|
|
}else{
|
|
|
commInstances.setNetType(0);
|
|
|
}
|
|
|
commInstances.setName(balancer.getLoadBalancerName());
|
|
|
commInstances.setAddress(balancer.getDNSName());
|
|
|
|
|
|
// if(CollectionUtils.isNotEmpty(balancer.getListenerDescriptions())){
|
|
|
// List<Integer> ports = new ArrayList<>();
|
|
|
// for(ListenerDescription listener : balancer.getListenerDescriptions()){
|
|
|
// if(listener.getListener() == null){
|
|
|
// continue;
|
|
|
// }
|
|
|
// ports.add(listener.getListener().getLoadBalancerPort());
|
|
|
// }
|
|
|
// commInstances.setPorts(ports);
|
|
|
// }
|
|
|
// if(CollectionUtils.isNotEmpty(balancer.getInstances())){
|
|
|
// List<String> instances = new ArrayList<>();
|
|
|
// for(com.amazonaws.services.elasticloadbalancing.model.Instance instance : balancer.getInstances()){
|
|
|
// instances.add(instance.getInstanceId());
|
|
|
// }
|
|
|
// List<CommLbBackends> listBackend = this.getDescribeInstances(instances);
|
|
|
// commInstances.setBackends(listBackend);
|
|
|
// }
|
|
|
//
|
|
|
// listCommInstances.add(commInstances);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
AmazonElasticLoadBalancing client = new AmazonElasticLoadBalancingClient(awsClientComp.getAWSCredentials());
|
|
|
client.setRegion(awsClientComp.getRegion(Regions.CN_NORTH_1));
|
|
|
DescribeLoadBalancersRequest request = new DescribeLoadBalancersRequest();
|
|
|
DescribeLoadBalancersResult result = client.describeLoadBalancers(request);
|
|
|
if(result == null || CollectionUtils.isEmpty(result.getLoadBalancerDescriptions())){
|
|
|
return null;
|
|
|
}
|
|
|
List<LoadBalancerDescription> listBalancer = result.getLoadBalancerDescriptions();
|
|
|
if(CollectionUtils.isEmpty(listBalancer)){
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
listCommInstances = new ArrayList<>();
|
|
|
for(LoadBalancerDescription balancer : listBalancer){
|
|
|
commInstances = new CommLbInstances();
|
|
|
commInstances.setCloudType("aws");
|
|
|
if("internet-facing".equals(balancer.getScheme())){
|
|
|
commInstances.setNetType(1);
|
|
|
}else{
|
|
|
commInstances.setNetType(0);
|
|
|
}
|
|
|
commInstances.setName(balancer.getLoadBalancerName());
|
|
|
commInstances.setAddress(balancer.getDNSName());
|
|
|
if(CollectionUtils.isNotEmpty(result.getLoadBalancerDescriptions())){
|
|
|
List<LoadBalancerDescription> listBalancer = result.getLoadBalancerDescriptions();
|
|
|
if(CollectionUtils.isNotEmpty(listBalancer)){
|
|
|
listCommInstances = new ArrayList<>();
|
|
|
for(LoadBalancerDescription balancer : listBalancer){
|
|
|
commInstances = new CommLbInstances();
|
|
|
commInstances.setCloudType(1);
|
|
|
if("internet-facing".equals(balancer.getScheme())){
|
|
|
commInstances.setNetType(1);
|
|
|
}else{
|
|
|
commInstances.setNetType(0);
|
|
|
}
|
|
|
commInstances.setName(balancer.getLoadBalancerName());
|
|
|
commInstances.setAddress(balancer.getDNSName());
|
|
|
|
|
|
if(CollectionUtils.isNotEmpty(balancer.getListenerDescriptions())){
|
|
|
List<Integer> ports = new ArrayList<>();
|
|
|
for(ListenerDescription listener : balancer.getListenerDescriptions()){
|
|
|
if(listener.getListener() == null){
|
|
|
continue;
|
|
|
if(CollectionUtils.isNotEmpty(balancer.getListenerDescriptions())){
|
|
|
List<Integer> ports = new ArrayList<>();
|
|
|
for(ListenerDescription listener : balancer.getListenerDescriptions()){
|
|
|
if(listener.getListener() == null){
|
|
|
continue;
|
|
|
}
|
|
|
ports.add(listener.getListener().getLoadBalancerPort());
|
|
|
}
|
|
|
commInstances.setPorts(ports);
|
|
|
}
|
|
|
ports.add(listener.getListener().getLoadBalancerPort());
|
|
|
}
|
|
|
commInstances.setPorts(ports);
|
|
|
}
|
|
|
if(CollectionUtils.isNotEmpty(balancer.getInstances())){
|
|
|
List<String> instances = new ArrayList<>();
|
|
|
for(com.amazonaws.services.elasticloadbalancing.model.Instance instance : balancer.getInstances()){
|
|
|
instances.add(instance.getInstanceId());
|
|
|
if(CollectionUtils.isNotEmpty(balancer.getInstances())){
|
|
|
List<String> instances = new ArrayList<>();
|
|
|
for(com.amazonaws.services.elasticloadbalancing.model.Instance instance : balancer.getInstances()){
|
|
|
instances.add(instance.getInstanceId());
|
|
|
}
|
|
|
List<CommLbBackends> listBackend = this.getDescribeInstances(instances);
|
|
|
commInstances.setBackends(listBackend);
|
|
|
}
|
|
|
|
|
|
listCommInstances.add(commInstances);
|
|
|
}
|
|
|
List<CommLbBackends> listBackend = this.getDescribeInstances(instances);
|
|
|
commInstances.setBackends(listBackend);
|
|
|
}
|
|
|
|
|
|
listCommInstances.add(commInstances);
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
logger.error("AwsLbServiceImpl - getLbInstances - error" , e);
|
...
|
...
|
|