Umesh Krishnaswamy | 345ee99 | 2012-12-13 20:29:48 -0800 | [diff] [blame] | 1 | package net.floodlightcontroller.core.web; |
| 2 | |
| 3 | import net.floodlightcontroller.linkdiscovery.ILinkDiscoveryService; |
| 4 | import net.floodlightcontroller.linkdiscovery.internal.EventHistoryTopologyLink; |
| 5 | import net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager; |
| 6 | import net.floodlightcontroller.util.EventHistory; |
| 7 | |
| 8 | import org.restlet.resource.Get; |
| 9 | import org.restlet.resource.ServerResource; |
| 10 | import org.slf4j.Logger; |
| 11 | import org.slf4j.LoggerFactory; |
| 12 | |
| 13 | /** |
| 14 | * @author subrata |
| 15 | * |
| 16 | */ |
| 17 | public class EventHistoryTopologyLinkResource extends ServerResource { |
| 18 | // TODO - Move this to the DeviceManager Rest API |
| 19 | protected static Logger log = |
| 20 | LoggerFactory.getLogger(EventHistoryTopologyLinkResource.class); |
| 21 | |
| 22 | @Get("json") |
| 23 | public EventHistory<EventHistoryTopologyLink> handleEvHistReq() { |
| 24 | |
| 25 | // Get the event history count. Last <count> events would be returned |
| 26 | String evHistCount = (String)getRequestAttributes().get("count"); |
| 27 | int count = EventHistory.EV_HISTORY_DEFAULT_SIZE; |
| 28 | try { |
| 29 | count = Integer.parseInt(evHistCount); |
| 30 | } |
| 31 | catch(NumberFormatException nFE) { |
| 32 | // Invalid input for event count - use default value |
| 33 | } |
| 34 | |
| 35 | LinkDiscoveryManager linkDiscoveryManager = |
| 36 | (LinkDiscoveryManager)getContext().getAttributes(). |
| 37 | get(ILinkDiscoveryService.class.getCanonicalName()); |
| 38 | if (linkDiscoveryManager != null) { |
| 39 | return new EventHistory<EventHistoryTopologyLink>( |
| 40 | linkDiscoveryManager.evHistTopologyLink, count); |
| 41 | } |
| 42 | |
| 43 | return null; |
| 44 | } |
| 45 | } |