blob: d1888d3163f565cf3f8a6f0a2f37c3ffa30dc3bd [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;
HIGUCHI Yutaa56fbde2013-06-17 14:26:05 -07004import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscoveryService;
5import net.onrc.onos.ofcontroller.linkdiscovery.internal.EventHistoryTopologyCluster;
6import net.onrc.onos.ofcontroller.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 EventHistoryTopologyClusterResource extends ServerResource {
18 // TODO - Move this to the LinkDiscovery 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(EventHistoryTopologyClusterResource.class);
21
22 @Get("json")
23 public EventHistory<EventHistoryTopologyCluster> 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 topoManager =
36 (LinkDiscoveryManager)getContext().getAttributes().
37 get(ILinkDiscoveryService.class.getCanonicalName());
38 if (topoManager != null) {
39 return new EventHistory<EventHistoryTopologyCluster>(
40 topoManager.evHistTopologyCluster, count);
41 }
42
43 return null;
44 }
45}