...
|
...
|
@@ -17,6 +17,7 @@ import com.monitor.model.request.HostInfoReq; |
|
|
import com.monitor.model.request.MObjectHostInfoReq;
|
|
|
import com.monitor.model.request.MObjectInfoReq;
|
|
|
import com.monitor.model.response.BaseResponse;
|
|
|
import com.monitor.mysql.mapper.HostInfoMapper;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
...
|
...
|
@@ -50,6 +51,9 @@ public class MObjectInfoCtrl { |
|
|
@Autowired
|
|
|
ITypeInfoService typeInfoService;
|
|
|
|
|
|
@Autowired
|
|
|
HostInfoMapper hostInfoMapper;
|
|
|
|
|
|
@RequestMapping(value = "/queryHost", method = RequestMethod.POST)
|
|
|
public BaseResponse queryMObjectHost(@RequestBody MObjectHostInfoReq request) {
|
|
|
|
...
|
...
|
@@ -279,11 +283,15 @@ public class MObjectInfoCtrl { |
|
|
|
|
|
@RequestMapping(value = "/asyMobjectHost")
|
|
|
public BaseResponse asyMobjectHost(int moTypeId) {
|
|
|
StringBuilder sb=new StringBuilder();
|
|
|
TypeInfo typeInfo=typeInfoService.queryTypeInfo(moTypeId);
|
|
|
sb.append("开始同步监控对象"+moTypeId);
|
|
|
if(typeInfo!=null&&StringUtils.isNotBlank(typeInfo.getTags())){
|
|
|
MObjectInfoReq mObjectInfoReq = new MObjectInfoReq();
|
|
|
mObjectInfoReq.setTypeIds(""+typeInfo.getTypeId());
|
|
|
mObjectInfoReq.setMoTypeId(typeInfo.getTypeId());
|
|
|
mObjectInfoReq.setMoTypeName(typeInfo.getTypeName());
|
|
|
mObjectInfoReq.setMoTags(typeInfo.getDescr());
|
|
|
sb.append("---").append(typeInfo.getTypeName()).append(":");
|
|
|
//根据typeinfo的主机标签查询出主机
|
|
|
List<String> hostTagsList=new ArrayList<String>();
|
|
|
List<Integer> cloudTagsList=new ArrayList<Integer>();
|
...
|
...
|
@@ -307,33 +315,81 @@ public class MObjectInfoCtrl { |
|
|
}
|
|
|
}
|
|
|
if(hostTagsList.size()>0){
|
|
|
//List<HostInfo> newhostInfos =hostInfoMapper.selectHostInfosByTagListAndCloudTypeList(hostTagsList,cloudTagsList);
|
|
|
List<HostInfo> newhostInfos =hostInfoMapper.selectHostInfosByTagListAndCloudTypeList(hostTagsList,cloudTagsList);
|
|
|
List<MObjectInfo> oldMobjects = mobjectService.queryMObjectsInfoByType(moTypeId);
|
|
|
//
|
|
|
List<String> newIps=new ArrayList<String>();
|
|
|
if(newhostInfos!=null&&newhostInfos.size()>0){
|
|
|
for(HostInfo hostInfo:newhostInfos){
|
|
|
newIps.add(hostInfo.getHostIp());
|
|
|
}
|
|
|
}
|
|
|
Map<String,List<Integer>> oldMobjectsMap=new HashMap<String,List<Integer>>();
|
|
|
if(oldMobjects!=null&&oldMobjects.size()>0){
|
|
|
for(MObjectInfo mObjectInfo:oldMobjects){
|
|
|
if(oldMobjectsMap.keySet().contains(mObjectInfo.getMoHostIp())){
|
|
|
oldMobjectsMap.get(mObjectInfo.getMoHostIp()).add(mObjectInfo.getMoId());
|
|
|
}else{
|
|
|
List<Integer> tmpLs=new ArrayList<Integer>();
|
|
|
tmpLs.add(mObjectInfo.getMoId());
|
|
|
oldMobjectsMap.put(mObjectInfo.getMoHostIp(),tmpLs);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
List<String> needAddIpList=new ArrayList<String>();
|
|
|
List<Integer> needDelMobjectIdList=new ArrayList<Integer>();
|
|
|
for(String ip :newIps){
|
|
|
if(!oldMobjectsMap.keySet().contains(ip)){
|
|
|
needAddIpList.add(ip);
|
|
|
}
|
|
|
}
|
|
|
String tmpDelips="";
|
|
|
for(String ip:oldMobjectsMap.keySet()){
|
|
|
if(!newIps.contains(ip)){
|
|
|
if(tmpDelips.length()>0){
|
|
|
tmpDelips+=",";
|
|
|
}
|
|
|
tmpDelips += ip;
|
|
|
needDelMobjectIdList.addAll(oldMobjectsMap.get(ip));
|
|
|
}
|
|
|
}
|
|
|
sb.append("删除hostip:").append(tmpDelips);
|
|
|
//删除
|
|
|
mobjectService.deleteMObjectInfo(needDelMobjectIdList);
|
|
|
//新增
|
|
|
sb.append("新增hostip:").append(StringUtils.join(needAddIpList,","));
|
|
|
mObjectInfoReq.setMoHostIp(StringUtils.join(needAddIpList,","));
|
|
|
addMobjectWithCheckFlag(mObjectInfoReq,false);
|
|
|
}
|
|
|
// mObjectInfoReq.setMoHostIp();
|
|
|
}
|
|
|
return null;
|
|
|
BaseResponse rtn= new BaseResponse();
|
|
|
rtn.setData(sb.toString());
|
|
|
return rtn;
|
|
|
}
|
|
|
|
|
|
|
|
|
@RequestMapping(value = "/add", method = RequestMethod.POST)
|
|
|
public BaseResponse addMObject(@RequestBody MObjectInfoReq request) {
|
|
|
return addMobjectWithCheckFlag(request,true);
|
|
|
}
|
|
|
|
|
|
DEBUG.debug("Add mObject: {}", request);
|
|
|
|
|
|
private BaseResponse addMobjectWithCheckFlag(MObjectInfoReq request,boolean checkFlag){
|
|
|
BaseResponse response = new BaseResponse();
|
|
|
|
|
|
try {
|
|
|
if (null != request&&StringUtils.isNotBlank(request.getMoHostIp())) {
|
|
|
|
|
|
if (!checkHost(request.getMoHostIp())) {
|
|
|
if(checkFlag){
|
|
|
if (!checkHost(request.getMoHostIp())) {
|
|
|
|
|
|
response.setCode(400);
|
|
|
response.setCode(400);
|
|
|
|
|
|
response.setMessage("Host " + request.getMoHostIp() + " does not exist...");
|
|
|
response.setMessage("Host " + request.getMoHostIp() + " does not exist...");
|
|
|
|
|
|
return response;
|
|
|
return response;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
String allIps=request.getMoHostIp();
|
|
|
for(String ip:allIps.split(",")){
|
|
|
MObjectInfo info = new MObjectInfo();
|
...
|
...
|
@@ -344,19 +400,13 @@ public class MObjectInfoCtrl { |
|
|
|
|
|
mobjectService.addMObjectInfo(info);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
DEBUG.error("Failed to Add mobjects: {} , eror: {} ", request, e);
|
|
|
|
|
|
response.setCode(400);
|
|
|
|
|
|
response.setMessage(e.getMessage());
|
|
|
}
|
|
|
|
|
|
return response;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
...
|
...
|
|