package org.infosec.ismp.manager.agent;
import java.util.Date;
import java.util.UUID;
import org.infosec.ismp.eventd.sender.EventSender;
import org.infosec.ismp.model.Parm;
import org.infosec.ismp.model.Parms;
import org.infosec.ismp.model.Value;
import org.infosec.ismp.model.event.Event;
import org.infosec.ismp.model.event.EventConstants;
/**
* AgentComponent发送事件助手
* @author lianglin
*
*/
public class AgentComponentUtil {
private AgentCompSnapShot agent;
public AgentComponentUtil(AgentCompSnapShot agent){
this.agent = agent;
}
public boolean sendPingNode(String nodeid,String ipaddr,long interval,boolean halfIntervalWhenDown){
Event event = createAddPingNodeEvent(nodeid, ipaddr, interval,
halfIntervalWhenDown);
boolean flag = EventSender.sendEvent(agent.ipAddr, agent.port, event);
return flag;
}
private Event createAddPingNodeEvent(String nodeid, String ipaddr,
long interval, boolean halfIntervalWhenDown) {
Event event = new Event();
event.setUuid(UUID.randomUUID().toString());
event.setUei(EventConstants.PING_NODE_ADD_UEI);
event.setTime(EventConstants.formatToString(new Date()));
event.setNodeid(nodeid);
event.setIpAddr(ipaddr);
Parms parms = new Parms();
Parm parm = new Parm();
parm.setParmName("interval");
Value value = new Value();
value.setContent(String.valueOf(interval));
parm.setValue(value);
parms.addParm(parm);
parm = new Parm();
parm.setParmName("halfIntervalWhenDown");
value = new Value();
value.setContent(String.valueOf(halfIntervalWhenDown));
parm.setValue(value);
parms.addParm(parm);
event.setParams(parms);
return event;
}
}