package org.openstack.atlas.usagerefactor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.openstack.atlas.service.domain.entities.Host; import org.openstack.atlas.usagerefactor.helpers.HostIdUsageMap; import org.openstack.atlas.usagerefactor.snmp.StingrayUsageClient; import org.openstack.atlas.usagerefactor.snmp.StingrayUsageClientImpl; import java.util.HashMap; import java.util.concurrent.Callable; public class HostThread implements Callable<HostIdUsageMap> { final Log LOG = LogFactory.getLog(HostThread.class); public final StingrayUsageClient stingrayUsageClient; public final Host host; public HostThread(Host host) { stingrayUsageClient = new StingrayUsageClientImpl(); this.host = host; } @Override public HostIdUsageMap call() throws Exception { try { return new HostIdUsageMap(host.getId(), stingrayUsageClient.getHostUsage(host)); } catch (Exception e) { String retString = String.format("Warning! Request for host %s usage from SNMP server failed.", host.getName()); LOG.warn(retString, e); } return new HostIdUsageMap(host.getId(), new HashMap<Integer, SnmpUsage>()); } }