Authored by xuhui

Elb写入数据库

Showing 25 changed files with 795 additions and 87 deletions
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);
... ...
... ... @@ -4,15 +4,12 @@ package com.monitor.cloudtools.controller;
* Created by xh on 2017/6/13.
*/
import com.model.InternalDomain;
import com.monitor.awstools.service.AwsLbService;
import com.monitor.cloudtools.model.CommElbInfoResponse;
import com.monitor.cloudtools.model.CommLbInstances;
import com.monitor.cloudtools.model.DnsPodRes;
import com.monitor.cloudtools.util.DnsPodUtil;
import com.monitor.cloudtools.service.CloudLbService;
import com.monitor.model.response.BaseResponse;
import com.monitor.mysql.mapper.InternalDomainMapper;
import com.monitor.qcloudtools.service.QcloudLbService;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -20,7 +17,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
... ... @@ -45,7 +41,7 @@ public class CloudLbController {
private AwsLbService awsLbService;
@Autowired
private InternalDomainMapper internalDomainMapper;
private CloudLbService cloudLbService;
/**
* 伸缩组信息查询
... ... @@ -65,48 +61,10 @@ public class CloudLbController {
return null;
}
try{
if(CollectionUtils.isNotEmpty(instances)){
List<DnsPodRes> listRes1 = DnsPodUtil.getDnsPod1();
List<DnsPodRes> listRes2 = DnsPodUtil.getDnsPod2();
for(CommLbInstances instance : instances){
List<String> commDomains = new ArrayList<>();
if(instance.getNetType() == 0){
//内网
List<InternalDomain> domains = internalDomainMapper.selectByValue(instance.getAddress());
if(CollectionUtils.isEmpty(domains)){
continue;
}
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.setDomain(commDomains);
}
}
}catch (Exception e){
logger.error("CloudLbController - getLbInstances - error", e);
}
List<CommElbInfoResponse> listInfo = cloudLbService.getElbInfos(instances);
response = new BaseResponse();
response.setData(instances);
response.setData(listInfo);
return response;
}
}
\ No newline at end of file
... ...
package com.monitor.cloudtools.model;
import com.monitor.model.domain.DomainInfo;
import com.monitor.model.domain.InstanceInfo;
import lombok.Data;
import java.util.List;
/**
* Created by xh on 2017/6/15.
*/
@Data
public class CommElbInfoResponse {
private int id;
/**
* 1:aws
* 2:qcloud
*/
private int cloudType;
private String name;
/**
* 0:内网
* 1:外网
*/
private int netType;
private String address;
private String ports;
private String createTime;
private List<DomainInfo> domainInfos;
private List<InstanceInfo> instanceInfos;
}
\ No newline at end of file
... ...
... ... @@ -14,7 +14,7 @@ public class CommLbInstances {
* aws
* qcloud
*/
private String cloudType;
private int cloudType;
/**
* 0:内网
... ...
package com.monitor.cloudtools.service;
import com.monitor.cloudtools.model.CommElbInfoResponse;
import com.monitor.cloudtools.model.CommLbInstances;
import java.util.List;
/**
* Created by xh on 2017/6/15.
*/
public interface CloudLbService {
/**
* 组装数据返回
* @param instances
* @return
*/
List<CommElbInfoResponse> getElbInfos(List<CommLbInstances> instances);
}
\ No newline at end of file
... ...
package com.monitor.cloudtools.service.impl;
import com.model.InternalDomain;
import com.monitor.cloudtools.model.CommElbInfoResponse;
import com.monitor.cloudtools.model.CommLbBackends;
import com.monitor.cloudtools.model.CommLbInstances;
import com.monitor.cloudtools.model.DnsPodRes;
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 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.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* Created by xh on 2017/6/15.
*/
@Service
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;
/**
* 组装数据返回
* @param instances
* @return
*/
@Override
public List<CommElbInfoResponse> getElbInfos(List<CommLbInstances> instances) {
List<CommElbInfoResponse> listResponse = null;
CommElbInfoResponse response = 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();
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.setDomain(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);
}
}
//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());
int id = instanceInfoImpl.insert(instanceInfo);
instanceIds.add(id);
instanceInfo.setId(id);
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());
listResponse.add(response);
}
}catch (Exception e){
logger.error("CloudLbServiceImpl - getElbInfos - error", e);
}
return listResponse;
}
}
\ No newline at end of file
... ...
package com.monitor.cloudtools.service.impl;
import com.monitor.model.domain.DomainInfo;
import com.monitor.mysql.mapper.DomainInfoMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* Created by xh on 2017/6/15.
*/
@Service
public class DomainInfoImpl {
public static final Logger logger = LoggerFactory.getLogger("cloudLbLogger");
@Autowired
private DomainInfoMapper domainInfoMapper;
public int insert(DomainInfo info){
try{
DomainInfo domainInfo = domainInfoMapper.selectByName(info.getName());
if(domainInfo == null){
domainInfoMapper.insert(info);
return info.getId();
}
return domainInfo.getId();
}catch (Exception e){
logger.error("DomainInfoImpl - insert - error", e);
}
return 0;
}
public void deleteAll(){
try{
domainInfoMapper.deleteAll();
}catch (Exception e){
logger.error("DomainInfoImpl - insert - error", e);
}
}
}
\ No newline at end of file
... ...
package com.monitor.cloudtools.service.impl;
import com.monitor.model.domain.ElbInfo;
import com.monitor.model.domain.ElbLinkDomain;
import com.monitor.model.domain.ElbLinkInstance;
import com.monitor.mysql.mapper.ElbInfoMapper;
import com.monitor.mysql.mapper.ElbLinkDomainMapper;
import com.monitor.mysql.mapper.ElbLinkInstanceMapper;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Created by xh on 2017/6/15.
*/
@Service
public class ElbInfoImpl {
public static final Logger logger = LoggerFactory.getLogger("cloudLbLogger");
@Autowired
private ElbInfoMapper elbInfoMapper;
@Autowired
private ElbLinkDomainMapper elbLinkDomainMapper;
@Autowired
private ElbLinkInstanceMapper elbLinkInstanceMapper;
public int insert(ElbInfo info, List<Integer> domainIds, List<Integer> instanceIds){
try{
elbInfoMapper.insert(info);
int elbId = info.getId();
if(CollectionUtils.isNotEmpty(domainIds)){
ElbLinkDomain linkDomain = null;
for(Integer id : domainIds){
linkDomain = new ElbLinkDomain();
linkDomain.setElbId(elbId);
linkDomain.setDomainId(id);
elbLinkDomainMapper.insert(linkDomain);
}
}
if(CollectionUtils.isNotEmpty(instanceIds)){
ElbLinkInstance linkInstance = null;
for(Integer id : instanceIds){
linkInstance = new ElbLinkInstance();
linkInstance.setElbId(elbId);
linkInstance.setInstanceId(id);
elbLinkInstanceMapper.insert(linkInstance);
}
}
return elbId;
}catch (Exception e){
logger.error("DomainInfoImpl - insert - error", e);
}
return 0;
}
public void deleteAll(){
try{
elbInfoMapper.deleteAll();
elbLinkDomainMapper.deleteAll();
elbLinkInstanceMapper.deleteAll();
}catch (Exception e){
logger.error("DomainInfoImpl - insert - error", e);
}
}
}
\ No newline at end of file
... ...
package com.monitor.cloudtools.service.impl;
import com.monitor.model.domain.InstanceInfo;
import com.monitor.mysql.mapper.InstanceInfoMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* Created by xh on 2017/6/15.
*/
@Service
public class InstanceInfoImpl {
public static final Logger logger = LoggerFactory.getLogger("cloudLbLogger");
@Autowired
private InstanceInfoMapper instanceInfoMapper;
public int insert(InstanceInfo info){
try{
InstanceInfo instanceInfo = instanceInfoMapper.selectByIp(info.getIp());
if(instanceInfo == null){
instanceInfoMapper.insert(info);
return info.getId();
}
return instanceInfo.getId();
}catch (Exception e){
logger.error("DomainInfoImpl - insert - error", e);
}
return 0;
}
}
\ No newline at end of file
... ...
... ... @@ -53,7 +53,7 @@ public class QcloudLbServiceImpl implements QcloudLbService {
backendses = this.getLbBackends(instance.getUnLoadBalancerId());
commInstances = new CommLbInstances();
commInstances.setCloudType("qcloud");
commInstances.setCloudType(2);
if(instance.getLoadBalancerType() == 3){
commInstances.setNetType(0);
}else{
... ...
package com.monitor.model.domain;
import lombok.Data;
/**
* Created by xh on 2017/6/15.
*/
@Data
public class DomainInfo {
private int id;
private String name;
private String createTime;
}
\ No newline at end of file
... ...
package com.monitor.model.domain;
import lombok.Data;
/**
* Created by xh on 2017/6/15.
*/
@Data
public class ElbInfo {
private int id;
/**
* 1:aws
* 2:qcloud
*/
private int cloudType;
private String name;
/**
* 0:内网
* 1:外网
*/
private int netType;
private String address;
private String ports;
private String createTime;
}
\ No newline at end of file
... ...
package com.monitor.model.domain;
import lombok.Data;
/**
* Created by xh on 2017/6/15.
*/
@Data
public class ElbLinkDomain {
private int id;
private int elbId;
private int domainId;
}
\ No newline at end of file
... ...
package com.monitor.model.domain;
import lombok.Data;
/**
* Created by xh on 2017/6/15.
*/
@Data
public class ElbLinkInstance {
private int id;
private int elbId;
private int instanceId;
}
\ No newline at end of file
... ...
package com.monitor.model.domain;
import lombok.Data;
/**
* Created by xh on 2017/6/15.
*/
@Data
public class InstanceInfo {
private int id;
private String code;
private String ip;
private String tag;
private int cloudType;
private String createTime;
}
\ No newline at end of file
... ...
package com.monitor.mysql.mapper;
import com.monitor.model.domain.DomainInfo;
/**
* Created by xh on 2017/6/15.
*/
public interface DomainInfoMapper {
int insert(DomainInfo domainInfo);
void deleteAll();
DomainInfo selectByName(String name);
}
\ No newline at end of file
... ...
package com.monitor.mysql.mapper;
import com.monitor.model.domain.ElbInfo;
import java.util.List;
/**
* Created by xh on 2017/6/15.
*/
public interface ElbInfoMapper {
int insert(ElbInfo lbInfo);
List<ElbInfo> getAll();
void deleteAll();
}
\ No newline at end of file
... ...
package com.monitor.mysql.mapper;
import com.monitor.model.domain.ElbLinkDomain;
/**
* Created by xh on 2017/6/15.
*/
public interface ElbLinkDomainMapper {
int insert(ElbLinkDomain elbLinkDomain);
void deleteAll();
}
\ No newline at end of file
... ...
package com.monitor.mysql.mapper;
import com.monitor.model.domain.ElbLinkInstance;
/**
* Created by xh on 2017/6/15.
*/
public interface ElbLinkInstanceMapper {
int insert(ElbLinkInstance elbLinkInstance);
void deleteAll();
}
... ...
package com.monitor.mysql.mapper;
import com.monitor.model.domain.InstanceInfo;
/**
* Created by xh on 2017/6/15.
*/
public interface InstanceInfoMapper {
int insert(InstanceInfo instanceInfo);
InstanceInfo selectByIp(String ip);
}
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.monitor.mysql.mapper.DomainInfoMapper" >
<resultMap id="BaseResultMap" type="com.monitor.model.domain.DomainInfo" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
id, name, DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') AS createTime
</sql>
<insert id="insert" parameterType="com.monitor.model.domain.DomainInfo" useGeneratedKeys="true" keyProperty="id">
insert into domain_info
(
name, create_time
)
values
(
#{name,jdbcType=INTEGER}, now()
)
</insert>
<delete id="deleteAll" parameterType="java.lang.Integer" >
delete from domain_info
</delete>
<select id="selectById" resultMap="BaseResultMap">
select
t.id as id, t.name as name, DATE_FORMAT(t.create_time,'%Y-%m-%d %H:%i:%S') AS createTime
from
domain_info t, elb_link_domain t1
where
t1.elb_id = #{id,jdbcType=INTEGER} and t1.domain_id=t.id
</select>
<select id="selectByName" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from
domain_info
where
name = #{name,jdbcType=VARCHAR}
</select>
</mapper>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.monitor.mysql.mapper.ElbInfoMapper" >
<resultMap id="BaseResultMap" type="com.monitor.model.domain.ElbInfo" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="cloudtype" property="cloudType" jdbcType="VARCHAR" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="netype" property="netType" jdbcType="VARCHAR" />
<result column="address" property="address" jdbcType="VARCHAR" />
<result column="ports" property="ports" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
id, cloudtype, name, netype, address, ports, DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') AS createTime
</sql>
<insert id="insert" parameterType="com.monitor.model.domain.ElbInfo" useGeneratedKeys="true" keyProperty="id">
insert into elb_info
(
cloudtype, name, netype, address, ports, create_time
)
values
(
#{cloudType,jdbcType=VARCHAR}, #{name,jdbcType=INTEGER}, #{netType,jdbcType=VARCHAR},
#{address,jdbcType=VARCHAR}, #{ports,jdbcType=VARCHAR}, now()
)
</insert>
<delete id="deleteAll" parameterType="java.lang.Integer" >
delete from elb_info
</delete>
<select id="getAll" resultMap="BaseResultMap" >
select
<include refid="Base_Column_List" />
from elb_info
</select>
</mapper>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.monitor.mysql.mapper.ElbLinkDomainMapper" >
<resultMap id="BaseResultMap" type="com.monitor.model.domain.ElbLinkDomain" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="elb_id" property="elbId" jdbcType="INTEGER" />
<result column="domain_id" property="domainId" jdbcType="INTEGER" />
</resultMap>
<insert id="insert" parameterType="com.monitor.model.domain.ElbLinkDomain" >
insert into elb_link_domain
(
id, elb_id, domain_id
)
values
(
#{id,jdbcType=INTEGER}, #{elbId,jdbcType=INTEGER}, #{domainId,jdbcType=INTEGER}
)
</insert>
<delete id="deleteAll" parameterType="java.lang.Integer" >
delete from elb_link_domain
</delete>
</mapper>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.monitor.mysql.mapper.ElbLinkInstanceMapper" >
<resultMap id="BaseResultMap" type="com.monitor.model.domain.ElbLinkInstance" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="elb_id" property="elbId" jdbcType="INTEGER" />
<result column="instance_id" property="instanceId" jdbcType="INTEGER" />
</resultMap>
<insert id="insert" parameterType="com.monitor.model.domain.ElbLinkInstance" >
insert into elb_link_instance
(
id, elb_id, instance_id
)
values
(
#{id,jdbcType=INTEGER}, #{elbId,jdbcType=INTEGER}, #{instanceId,jdbcType=INTEGER}
)
</insert>
<delete id="deleteAll" parameterType="java.lang.Integer" >
delete from elb_link_instance
</delete>
</mapper>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.monitor.mysql.mapper.InstanceInfoMapper" >
<resultMap id="BaseResultMap" type="com.monitor.model.domain.InstanceInfo" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="code" property="code" jdbcType="VARCHAR" />
<result column="ip" property="ip" jdbcType="VARCHAR" />
<result column="tag" property="tag" jdbcType="VARCHAR" />
<result column="cloudtype" property="cloudType" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
id, code, ip, tag, cloudtype, DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') AS createTime
</sql>
<insert id="insert" parameterType="com.monitor.model.domain.InstanceInfo" useGeneratedKeys="true" keyProperty="id">
insert into
instance_info
(
code, ip, tag, cloudtype, create_time
)
values
(
#{code,jdbcType=VARCHAR}, #{ip,jdbcType=VARCHAR}, #{tag,jdbcType=VARCHAR},
#{cloudType,jdbcType=INTEGER}, now()
)
</insert>
<select id="selectById" resultMap="BaseResultMap">
select
t.id as id, t.code as code, t.ip as ip, t.tag as tag, t.cloudtype as cloudtype,
DATE_FORMAT(t.create_time,'%Y-%m-%d %H:%i:%S') AS createTime
from
instance_info t, elb_link_instance t1
where
t1.elb_id = #{id,jdbcType=INTEGER} and t1.instance_id=t.id
</select>
<select id="selectByIp" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from
instance_info
where
ip = #{ip,jdbcType=VARCHAR}
</select>
</mapper>
\ No newline at end of file
... ...