package org.infosec.ismp.collectd.services;
import org.infosec.ismp.collectd.snmp.SysObjectIdTracker;
import org.infosec.ismp.snmp.SnmpAgentConfig;
import org.infosec.ismp.snmp.SnmpUtils;
import org.infosec.ismp.snmp.SnmpWalker;
/**
* test node if snmp service is available
* @author lianglin
*
*/
public class SnmpAvailabler implements Runnable {
private SnmpAgentConfig m_agentConfig;
private volatile boolean m_available = false;
public SnmpAvailabler(SnmpAgentConfig agentConfig) {
this.m_agentConfig =agentConfig;
}
@Override
public void run() {
SysObjectIdTracker tracker = new SysObjectIdTracker();
SnmpWalker walker = SnmpUtils.createWalker(m_agentConfig,
"availabeTest", tracker);
walker.start();
try {
walker.waitFor(60 * 1000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (!tracker.failed())
m_available = true;
}
public boolean isAvailable() {
return m_available;
}
}