package com.intrbiz.bergamot.agent.handler;
import org.hyperic.sigar.Humidor;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.SigarProxy;
import org.hyperic.sigar.Uptime;
import com.intrbiz.bergamot.model.message.agent.AgentMessage;
import com.intrbiz.bergamot.model.message.agent.check.CheckUptime;
import com.intrbiz.bergamot.model.message.agent.error.GeneralError;
import com.intrbiz.bergamot.model.message.agent.stat.UptimeStat;
public class UptimeInfoHandler extends AbstractAgentHandler
{
private SigarProxy sigar = Humidor.getInstance().getSigar();
public UptimeInfoHandler()
{
super();
}
@Override
public Class<?>[] getMessages()
{
return new Class[] { CheckUptime.class };
}
@Override
public AgentMessage handle(AgentMessage request)
{
try
{
UptimeStat stat = new UptimeStat(request);
Uptime u = sigar.getUptime();
stat.setUptime(u.getUptime());
return stat;
}
catch (SigarException e)
{
return new GeneralError(e.getMessage());
}
}
}