Authored by qinchao

去掉不用dnsspot信息

package com.monitor.cloudtools.service;
import com.monitor.cloudtools.model.CommElbInfoResponse;
import com.monitor.cloudtools.model.CommLbInstances;
import com.monitor.model.domain.ElbInfo;
import com.monitor.model.response.BaseResponse;
import java.util.List;
... ... @@ -13,12 +10,6 @@ import java.util.List;
public interface CloudLbService {
//void getLbInstances(int cloudType);
/**
* 组装数据返回
* @param instances
* @return
*/
List<CommElbInfoResponse> getElbInfos(List<CommLbInstances> instances);
List<ElbInfo> getElbInfoFromDb(int cloudType);
}
\ No newline at end of file
... ...
package com.monitor.cloudtools.service.impl;
import com.model.InternalDomain;
import com.monitor.awstools.service.AwsLbService;
import com.monitor.awstools.service.AwsQueryService;
import com.monitor.cloudtools.model.*;
import com.monitor.cloudtools.service.CloudLbService;
import com.monitor.cloudtools.util.DnsPodUtil;
import com.monitor.model.domain.DomainInfo;
import com.monitor.model.domain.ElbInfo;
import com.monitor.model.domain.InstanceInfo;
import com.monitor.mysql.mapper.InternalDomainMapper;
import com.monitor.qcloudtools.service.QcloudLbService;
import com.monitor.qcloudtools.service.QcloudToolService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
... ... @@ -31,201 +17,6 @@ import java.util.List;
public class CloudLbServiceImpl implements CloudLbService {
public static final Logger logger = LoggerFactory.getLogger("cloudLbLogger");
@Autowired
private InternalDomainMapper internalDomainMapper;
@Autowired
private ElbInfoImpl elbInfoImpl;
@Autowired
private DomainInfoImpl domainInfoImpl;
@Autowired
private InstanceInfoImpl instanceInfoImpl;
/**
* 腾讯云
*/
@Autowired
private QcloudToolService qCloudToolService;
/**
* 亚马逊云
*/
@Autowired
private AwsLbService awsLbService;
/**
* 腾讯云
*/
@Autowired
private QcloudLbService qcloudLbService;
/**
* 亚马逊云
*/
@Autowired
private AwsQueryService awsQueryService;
private static final String EQUALS_NAME = "nginx";
//@Scheduled(cron = "${cron_elb_info_scan}")
public void getLbInstances() {
List<CommLbInstances> instances = new ArrayList<>();
List<CommLbInstances> instances_aws = awsLbService.getLbInstances();
List<CommLbInstances> instances_qq = qcloudLbService.getLbInstances();
if(CollectionUtils.isNotEmpty(instances_aws)){
instances.addAll(instances_aws);
}
if(CollectionUtils.isNotEmpty(instances_qq)){
instances.addAll(instances_qq);
}
getElbInfos(instances);
}
/**
* 组装数据返回
* @param instances
* @return
*/
@Override
public List<CommElbInfoResponse> getElbInfos(List<CommLbInstances> instances) {
List<CommElbInfoResponse> listResponse = null;
CommElbInfoResponse response = null;
List<CommElbInfoResponse> newListResponse = null;
try{
if(CollectionUtils.isEmpty(instances)){
return null;
}
listResponse = new ArrayList<>();
//1:删除表记录
elbInfoImpl.deleteAll();
domainInfoImpl.deleteAll();
List<DnsPodRes> listRes1 = DnsPodUtil.getDnsPod1();
List<DnsPodRes> listRes2 = DnsPodUtil.getDnsPod2();
List<CommAutoScalingGroup> autoScalingGroups = new ArrayList<>();
List<CommAutoScalingGroup> autoScalingGroups_aws = awsQueryService.autoScalingConfig(EQUALS_NAME);
List<CommAutoScalingGroup> autoScalingGroups_qq = qCloudToolService.getAutoScalingConfig(EQUALS_NAME);
if(CollectionUtils.isNotEmpty(autoScalingGroups_aws)){
autoScalingGroups.addAll(autoScalingGroups_aws);
}
if(CollectionUtils.isNotEmpty(autoScalingGroups_qq)){
autoScalingGroups.addAll(autoScalingGroups_qq);
}
List<CommAutoScalingInstances> listScalingInstance = null;
if(CollectionUtils.isNotEmpty(autoScalingGroups)){
listScalingInstance = new ArrayList<>();
for(CommAutoScalingGroup group : autoScalingGroups){
if(CollectionUtils.isEmpty(group.getScalingInstancess())){
listScalingInstance.addAll(group.getScalingInstancess());
}
}
}
for(CommLbInstances instance : instances){
//域名获取
List<String> commDomains = new ArrayList<>();
if(instance.getNetType() == 0){
//内网
List<InternalDomain> domains = internalDomainMapper.selectByValue(instance.getAddress());
if(CollectionUtils.isNotEmpty(domains)){
for(InternalDomain domain : domains){
if(commDomains.contains(domain.getName() + "." + domain.getDomain())){
continue;
}
commDomains.add(domain.getName() + "." + domain.getDomain());
}
}
}else{
//外网
for(DnsPodRes res : listRes1){
if(res.getValue().indexOf(instance.getAddress()) > -1){
commDomains.add(res.getName() + "." + "yoho.cn");
}
}
for(DnsPodRes res : listRes2){
if(res.getValue().indexOf(instance.getAddress()) > -1){
commDomains.add(res.getName() + "." + "yohobuy.com");
}
}
}
instance.setDomains(commDomains);
//插入数据库
//1:domain
List<Integer> domainIds = null;
List<DomainInfo> domainInfos = null;
if(CollectionUtils.isNotEmpty(commDomains)){
domainIds = new ArrayList<>();
domainInfos = new ArrayList<>();
for(String domain : commDomains){
DomainInfo domainInfo = new DomainInfo();
domainInfo.setName(domain);
int id = domainInfoImpl.insert(domainInfo);
domainIds.add(id);
domainInfo.setId(id);
domainInfos.add(domainInfo);
}
}
String tags = null;
//2:instance
List<Integer> instanceIds = null;
List<InstanceInfo> instanceInfos = null;
if(CollectionUtils.isNotEmpty(instance.getBackends())){
instanceIds = new ArrayList<>();
instanceInfos = new ArrayList<>();
for (CommLbBackends backend : instance.getBackends()){
InstanceInfo instanceInfo = new InstanceInfo();
instanceInfo.setCloudType(instance.getCloudType());
instanceInfo.setCode(backend.getInstanceId());
instanceInfo.setIp(backend.getLanIp());
if(CollectionUtils.isNotEmpty(listScalingInstance)){
for(CommAutoScalingInstances scalingInstance : listScalingInstance){
if(backend.getLanIp().equals(scalingInstance.getIp())){
instanceInfo.setTag(EQUALS_NAME);
}
}
}
InstanceInfo newInfo = instanceInfoImpl.insert(instanceInfo);
tags = newInfo.getTag();
instanceIds.add(newInfo.getId());
instanceInfo.setId(newInfo.getId());
instanceInfos.add(instanceInfo);
}
}
ElbInfo elbInfo = new ElbInfo();
elbInfo.setCloudType(instance.getCloudType());
elbInfo.setName(instance.getName());
elbInfo.setNetType(instance.getNetType());
elbInfo.setAddress(instance.getAddress());
elbInfo.setPorts(StringUtils.join(instance.getPorts(), ','));
int elbId = elbInfoImpl.insert(elbInfo, domainIds, instanceIds);
elbInfo.setId(elbId);
response = new CommElbInfoResponse();
response.setId(elbInfo.getId());
response.setCloudType(elbInfo.getCloudType());
response.setName(elbInfo.getName());
response.setNetType(elbInfo.getNetType());
response.setAddress(elbInfo.getAddress());
response.setPorts(elbInfo.getPorts());
response.setTags(tags);
listResponse.add(response);
}
}catch (Exception e){
logger.error("CloudLbServiceImpl - getElbInfos - error", e);
}
return listResponse;
}
@Override
public List<ElbInfo> getElbInfoFromDb(int cloudType) {
try{
... ...
package com.monitor.cloudtools.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.monitor.cloudtools.model.DnsPodRes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.List;
... ... @@ -16,29 +9,12 @@ import java.util.List;
* Created by xh on 2017/6/14.
*/
public class DnsPodUtil {
public static final Logger logger = LoggerFactory.getLogger("cloudLbLogger");
private static String login_token="31578,5f5402160468dc375159e2e94eeef1da";
private static String format = "json";
/**
* yoho.cn
*/
public static List<DnsPodRes> getDnsPod1(){
List<DnsPodRes> listRes = new ArrayList<>();
MultiValueMap<String, String> requestEntity = new LinkedMultiValueMap<>();
requestEntity.add("login_token", login_token);
requestEntity.add("format",format);
requestEntity.add("domain_id", "16862974");
try{
RestTemplate restTemplate = new RestTemplate();
String yoho = restTemplate.postForObject("https://dnsapi.cn/Record.List", requestEntity, String.class);
JSONObject responseJSON = JSONObject.parseObject(yoho);
listRes = JSON.parseArray(responseJSON.getString("records"), DnsPodRes.class);
}catch (Exception e){
logger.error(" - DnsPodUtil - getDnsPod1 - error", e);
}
return listRes;
}
... ... @@ -48,7 +24,7 @@ public class DnsPodUtil {
*/
public static List<DnsPodRes> getDnsPod2(){
List<DnsPodRes> listRes = new ArrayList<>();
MultiValueMap<String, String> requestEntity = new LinkedMultiValueMap<>();
/*MultiValueMap<String, String> requestEntity = new LinkedMultiValueMap<>();
requestEntity.add("login_token", login_token);
requestEntity.add("format",format);
requestEntity.add("domain_id", "20765505");
... ... @@ -59,8 +35,7 @@ public class DnsPodUtil {
listRes = JSON.parseArray(responseJSON.getString("records"), DnsPodRes.class);
}catch (Exception e){
logger.error(" - DnsPodUtil - getDnsPod2 - error", e);
}
}*/
return listRes;
}
}
\ No newline at end of file
... ...