package org.infosec.ismp.manager.agent.sitecheck;
import org.infosec.ismp.manager.model.SiteCheckResultEntity;
import org.infosec.ismp.manager.rmi.wsm.model.SiteCheckRmiModel;
import org.infosec.ismp.manager.rmi.wsm.service.SiteCheckRmiInterface;
import org.infosec.ismp.util.ThreadCategory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class SiteCheckRmiInterfaceImpl implements SiteCheckRmiInterface {
private SiteCheckLocator locator;
@Autowired(required=true)
public void setLocator(SiteCheckLocator locator) {
this.locator = locator;
}
/**
* 添加一个页面检测服务
*/
@Override
public void addSiteCheck(String domainId, String nodeId, String url,
long interval, long outTime) {
locator.addSiteCheckNode(domainId, nodeId, url, interval);
log().debug("SiteCheckRmiInterfaceImpl addSiteCheck方法");
log().debug("domainId:"+domainId);
log().debug("nodeId:"+nodeId);
log().debug("url:"+url);
log().debug("interval:"+interval);
log().debug("outTime:"+outTime);
}
/**
* 获取一个页面检测服务信息
*/
@Override
public SiteCheckRmiModel getSiteCheck(String nodeId) {
log().debug("SiteCheckRmiInterfaceImpl getSiteCheck方法");
log().debug("nodeId:"+nodeId);
SiteCheckResultEntity entity = locator.getSiteCheckResult(nodeId);
if(null!=entity){
SiteCheckRmiModel model = new SiteCheckRmiModel();
model.setNodeid(nodeId);
model.setPingStatus(entity.getPingStatus());
model.setResponseTime(entity.getResponseTime());
model.setSiteCheckStatus(entity.getSiteCheckStatus());
model.setSiteCheckTime(entity.getSiteCheckTime());
model.setUrl(entity.getUrl());
return model;
}
return null;
}
/**
* 删除一个页面检测服务
*/
@Override
public void removeSiteCheck(String nodeId) {
locator.removeSiteCheckNode(nodeId);
log().debug("SiteCheckRmiInterfaceImpl removeSiteCheck方法");
log().debug("nodeId:"+nodeId);
}
/**
* 重置一个页面检测服务
*/
@Override
public void resetSiteCheck(String nodeId) {
locator.resetSiteCheckNode(nodeId);
log().debug("SiteCheckRmiInterfaceImpl resetSiteChekc方法");
log().debug("nodeId:"+nodeId);
}
/**
* 修改一个页面检测服务
*/
@Override
public void updateSiteCheck(String nodeId, String url, long interval,
long outTime) {
String domain = locator.getDomainByNodeid(nodeId);
if(null!=domain){
locator.removeSiteCheckNode(nodeId);
locator.addSiteCheckNode(domain, nodeId, url, interval);
log().debug("SiteCheckRmiInterfaceImpl updateSiteCheck方法");
log().debug("nodeId:"+nodeId);
log().debug("url:"+url);
log().debug("interval:"+interval);
log().debug("outTime:"+outTime);
}else
{
log().warn("该updateSiteCheck没有找到对应的域,抛弃,该nodeid:"+nodeId);
}
}
private ThreadCategory log() {
return ThreadCategory.getInstance(getClass());
}
}