blob: fbb2e76dc420f76595232bc5ae70bebeb997aaed [file] [log] [blame]
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08001package net.floodlightcontroller.core.web;
2
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08003import net.floodlightcontroller.util.EventHistory;
Jonathan Hart23701d12014-04-03 10:45:48 -07004import net.onrc.onos.core.linkdiscovery.ILinkDiscoveryService;
5import net.onrc.onos.core.linkdiscovery.internal.EventHistoryTopologyLink;
6import net.onrc.onos.core.linkdiscovery.internal.LinkDiscoveryManager;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08007
8import org.restlet.resource.Get;
9import org.restlet.resource.ServerResource;
10import org.slf4j.Logger;
11import org.slf4j.LoggerFactory;
12
13/**
14 * @author subrata
15 *
16 */
17public class EventHistoryTopologyLinkResource extends ServerResource {
18 // TODO - Move this to the DeviceManager Rest API
Yuta HIGUCHI6ac8d182013-10-22 15:24:56 -070019 protected final static Logger log =
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080020 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}