Removed the EventHistory mechanism from the link discovery module.
Change-Id: I55da78efad3025cb34aa41ead9c2fdf2e7a25d3e
diff --git a/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java b/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
index 4492643..74cccfb 100644
--- a/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
+++ b/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
@@ -45,13 +45,6 @@
router.attach("/switch/{switchId}/{statType}/json", SwitchStatisticsResource.class);
router.attach("/controller/switches/json", ControllerSwitchesResource.class);
router.attach("/memory/json", ControllerMemoryResource.class);
- // Get the last {count} events from the event histories
- router.attach("/event-history/topology-switch/{count}/json",
- EventHistoryTopologySwitchResource.class);
- router.attach("/event-history/topology-link/{count}/json",
- EventHistoryTopologyLinkResource.class);
- router.attach("/event-history/topology-cluster/{count}/json",
- EventHistoryTopologyClusterResource.class);
router.attach("/health/json", HealthCheckResource.class);
router.attach("/system/uptime/json", SystemUptimeResource.class);
return router;
diff --git a/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyClusterResource.java b/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyClusterResource.java
deleted file mode 100644
index 2bbb1bd..0000000
--- a/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyClusterResource.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package net.floodlightcontroller.core.web;
-
-import net.floodlightcontroller.util.EventHistory;
-import net.onrc.onos.core.linkdiscovery.ILinkDiscoveryService;
-import net.onrc.onos.core.linkdiscovery.internal.EventHistoryTopologyCluster;
-import net.onrc.onos.core.linkdiscovery.internal.LinkDiscoveryManager;
-
-import org.restlet.resource.Get;
-import org.restlet.resource.ServerResource;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author subrata
- */
-public class EventHistoryTopologyClusterResource extends ServerResource {
- // TODO - Move this to the LinkDiscovery rest API
- protected final static Logger log =
- LoggerFactory.getLogger(EventHistoryTopologyClusterResource.class);
-
- @Get("json")
- public EventHistory<EventHistoryTopologyCluster> handleEvHistReq() {
-
- // Get the event history count. Last <count> events would be returned
- String evHistCount = (String) getRequestAttributes().get("count");
- int count = EventHistory.EV_HISTORY_DEFAULT_SIZE;
- try {
- count = Integer.parseInt(evHistCount);
- } catch (NumberFormatException nFE) {
- // Invalid input for event count - use default value
- }
-
- LinkDiscoveryManager topoManager =
- (LinkDiscoveryManager) getContext().getAttributes().
- get(ILinkDiscoveryService.class.getCanonicalName());
- if (topoManager != null) {
- return new EventHistory<EventHistoryTopologyCluster>(
- topoManager.evHistTopologyCluster, count);
- }
-
- return null;
- }
-}
diff --git a/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyLinkResource.java b/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyLinkResource.java
deleted file mode 100644
index 90d9198..0000000
--- a/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyLinkResource.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package net.floodlightcontroller.core.web;
-
-import net.floodlightcontroller.util.EventHistory;
-import net.onrc.onos.core.linkdiscovery.ILinkDiscoveryService;
-import net.onrc.onos.core.linkdiscovery.internal.EventHistoryTopologyLink;
-import net.onrc.onos.core.linkdiscovery.internal.LinkDiscoveryManager;
-
-import org.restlet.resource.Get;
-import org.restlet.resource.ServerResource;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author subrata
- */
-public class EventHistoryTopologyLinkResource extends ServerResource {
- // TODO - Move this to the DeviceManager Rest API
- protected final static Logger log =
- LoggerFactory.getLogger(EventHistoryTopologyLinkResource.class);
-
- @Get("json")
- public EventHistory<EventHistoryTopologyLink> handleEvHistReq() {
-
- // Get the event history count. Last <count> events would be returned
- String evHistCount = (String) getRequestAttributes().get("count");
- int count = EventHistory.EV_HISTORY_DEFAULT_SIZE;
- try {
- count = Integer.parseInt(evHistCount);
- } catch (NumberFormatException nFE) {
- // Invalid input for event count - use default value
- }
-
- LinkDiscoveryManager linkDiscoveryManager =
- (LinkDiscoveryManager) getContext().getAttributes().
- get(ILinkDiscoveryService.class.getCanonicalName());
- if (linkDiscoveryManager != null) {
- return new EventHistory<EventHistoryTopologyLink>(
- linkDiscoveryManager.evHistTopologyLink, count);
- }
-
- return null;
- }
-}
diff --git a/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologySwitchResource.java b/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologySwitchResource.java
deleted file mode 100644
index e1fbb1b..0000000
--- a/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologySwitchResource.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package net.floodlightcontroller.core.web;
-
-import net.floodlightcontroller.util.EventHistory;
-import net.onrc.onos.core.linkdiscovery.ILinkDiscoveryService;
-import net.onrc.onos.core.linkdiscovery.internal.EventHistoryTopologySwitch;
-import net.onrc.onos.core.linkdiscovery.internal.LinkDiscoveryManager;
-
-import org.restlet.resource.Get;
-import org.restlet.resource.ServerResource;
-
-/**
- * @author subrata
- */
-public class EventHistoryTopologySwitchResource extends ServerResource {
-
- @Get("json")
- public EventHistory<EventHistoryTopologySwitch> handleEvHistReq() {
-
- // Get the event history count. Last <count> events would be returned
- String evHistCount = (String) getRequestAttributes().get("count");
- int count = EventHistory.EV_HISTORY_DEFAULT_SIZE;
- try {
- count = Integer.parseInt(evHistCount);
- } catch (NumberFormatException nFE) {
- // Invalid input for event count - use default value
- }
-
- LinkDiscoveryManager topoManager =
- (LinkDiscoveryManager) getContext().getAttributes().
- get(ILinkDiscoveryService.class.getCanonicalName());
-
- return new EventHistory<EventHistoryTopologySwitch>(
- topoManager.evHistTopologySwitch, count);
- }
-}
diff --git a/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologyCluster.java b/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologyCluster.java
deleted file mode 100644
index 12ed97b..0000000
--- a/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologyCluster.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package net.onrc.onos.core.linkdiscovery.internal;
-
-import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
-
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-
-/**
- * Topology Cluster merge/split event history related classes and members.
- *
- * @author subrata
- */
-public class EventHistoryTopologyCluster {
- // The following fields are not stored as String to save memory
- // They should be converted to appropriate human-readable strings by
- // the front end (e.g. in cli in Python)
- public long dpid;
- public long clusterIdOld; // Switch with dpid moved from cluster x to y
- public long clusterIdNew;
- public String reason;
-
- @JsonProperty("Switch")
- @JsonSerialize(using = DPIDSerializer.class)
- public long getDpid() {
- return dpid;
- }
-
- @JsonProperty("OldClusterId")
- @JsonSerialize(using = DPIDSerializer.class)
- public long getClusterIdOld() {
- return clusterIdOld;
- }
-
- @JsonProperty("NewClusterId")
- @JsonSerialize(using = DPIDSerializer.class)
- public long getClusterIdNew() {
- return clusterIdNew;
- }
-
- @JsonProperty("Reason")
- public String getReason() {
- return reason;
- }
-
-
-}
diff --git a/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologyLink.java b/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologyLink.java
deleted file mode 100644
index 50c6c7e..0000000
--- a/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologyLink.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package net.onrc.onos.core.linkdiscovery.internal;
-
-import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
-
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-
-/**
- * Topology link up/down event history related classes and members.
- *
- * @author subrata
- */
-public class EventHistoryTopologyLink {
- // The following fields are not stored as String to save memory
- // They should be converted to appropriate human-readable strings by
- // the front end (e.g. in cli in Python)
- public long srcSwDpid;
- public long dstSwDpid;
- public int srcPortState;
- public int dstPortState;
- public int srcSwport;
- public int dstSwport;
- public String linkType;
- public String reason;
-
- @JsonProperty("Source-Switch")
- @JsonSerialize(using = DPIDSerializer.class)
- public long getSrcSwDpid() {
- return srcSwDpid;
- }
-
- @JsonProperty("Dest-Switch")
- @JsonSerialize(using = DPIDSerializer.class)
- public long getDstSwDpid() {
- return dstSwDpid;
- }
-
- @JsonProperty("SrcPortState")
- public int getSrcPortState() {
- return srcPortState;
- }
-
- @JsonProperty("DstPortState")
- public int getDstPortState() {
- return dstPortState;
- }
-
- @JsonProperty("SrcPort")
- public int getSrcSwport() {
- return srcSwport;
- }
-
- @JsonProperty("DstPort")
- public int getDstSwport() {
- return dstSwport;
- }
-
- @JsonProperty("LinkType")
- public String getLinkType() {
- return linkType;
- }
-
- @JsonProperty("Reason")
- public String getReason() {
- return reason;
- }
-
-
-}
diff --git a/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologySwitch.java b/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologySwitch.java
deleted file mode 100644
index 456f176..0000000
--- a/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologySwitch.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package net.onrc.onos.core.linkdiscovery.internal;
-
-import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
-import net.floodlightcontroller.core.web.serializers.IPv4Serializer;
-
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-
-/**
- * Topology Switch event history related classes and members.
- *
- * @author subrata
- */
-public class EventHistoryTopologySwitch {
- // The following fields are not stored as String to save memory
- // They should be converted to appropriate human-readable strings by
- // the front end (e.g. in cli in Python)
- public long dpid;
- public int ipv4Addr;
- public int l4Port;
- public String reason;
-
- @JsonProperty("Switch")
- @JsonSerialize(using = DPIDSerializer.class)
- public long getDpid() {
- return dpid;
- }
-
- @JsonProperty("IpAddr")
- @JsonSerialize(using = IPv4Serializer.class)
- public int getIpv4Addr() {
- return ipv4Addr;
- }
-
- @JsonProperty("Port")
- public int getL4Port() {
- return l4Port;
- }
-
- @JsonProperty("Reason")
- public String getReason() {
- return reason;
- }
-
-
-}
diff --git a/src/main/java/net/onrc/onos/core/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/onrc/onos/core/linkdiscovery/internal/LinkDiscoveryManager.java
index 279e4c3..ed57586 100644
--- a/src/main/java/net/onrc/onos/core/linkdiscovery/internal/LinkDiscoveryManager.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/internal/LinkDiscoveryManager.java
@@ -19,9 +19,7 @@
import java.io.IOException;
import java.net.InetAddress;
-import java.net.InetSocketAddress;
import java.net.NetworkInterface;
-import java.net.SocketAddress;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collection;
@@ -54,8 +52,6 @@
import net.floodlightcontroller.core.util.SingletonTask;
import net.floodlightcontroller.restserver.IRestApiService;
import net.floodlightcontroller.threadpool.IThreadPoolService;
-import net.floodlightcontroller.util.EventHistory;
-import net.floodlightcontroller.util.EventHistory.EvAction;
import net.onrc.onos.core.linkdiscovery.ILinkDiscovery;
import net.onrc.onos.core.linkdiscovery.ILinkDiscovery.LDUpdate;
import net.onrc.onos.core.linkdiscovery.ILinkDiscovery.UpdateOperation;
@@ -1131,14 +1127,6 @@
updateOperation = UpdateOperation.LINK_ADDED;
linkChanged = true;
- // Add to event history
- evHistTopoLink(lt.getSrc(),
- lt.getDst(),
- lt.getSrcPort(),
- lt.getDstPort(),
- newInfo.getSrcPortState(), newInfo.getDstPortState(),
- getLinkType(lt, newInfo),
- EvAction.LINK_ADDED, "LLDP Recvd");
} else {
// Since the link info is already there, we need to
// update the right fields.
@@ -1186,15 +1174,6 @@
if (log.isTraceEnabled()) {
log.trace("Updated link {}", lt);
}
- // Add to event history
- evHistTopoLink(lt.getSrc(),
- lt.getDst(),
- lt.getSrcPort(),
- lt.getDstPort(),
- newInfo.getSrcPortState(), newInfo.getDstPortState(),
- getLinkType(lt, newInfo),
- EvAction.LINK_PORT_STATE_UPDATED,
- "LLDP Recvd");
}
}
@@ -1263,15 +1242,6 @@
UpdateOperation.LINK_REMOVED));
controller.publishUpdate(update);
- // Update Event History
- evHistTopoLink(lt.getSrc(),
- lt.getDst(),
- lt.getSrcPort(),
- lt.getDstPort(),
- 0, 0, // Port states
- ILinkDiscovery.LinkType.INVALID_LINK,
- EvAction.LINK_DELETED, reason);
-
// TODO Whenever link is removed, it has to checked if
// the switchports must be added to quarantine.
@@ -1443,14 +1413,12 @@
*/
@Override
public void addedSwitch(IOFSwitch sw) {
-
if (sw.getEnabledPorts() != null) {
for (Short p : sw.getEnabledPortNumbers()) {
processNewPort(sw.getId(), p);
}
}
- // Update event history
- evHistTopoSwitch(sw, EvAction.SWITCH_CONNECTED, "None");
+
LinkUpdate update = new LinkUpdate(new LDUpdate(sw.getId(), null,
UpdateOperation.SWITCH_UPDATED));
controller.publishUpdate(update);
@@ -1463,7 +1431,7 @@
public void removedSwitch(IOFSwitch iofSwitch) {
// Update event history
long sw = iofSwitch.getId();
- evHistTopoSwitch(iofSwitch, EvAction.SWITCH_DISCONNECTED, "None");
+
List<Link> eraseList = new ArrayList<Link>();
lock.writeLock().lock();
try {
@@ -1748,13 +1716,6 @@
this.maintenanceQueue = new LinkedBlockingQueue<NodePortTuple>();
// Added by ONOS
this.remoteSwitches = new HashMap<Long, IOnosRemoteSwitch>();
-
- this.evHistTopologySwitch =
- new EventHistory<EventHistoryTopologySwitch>("Topology: Switch");
- this.evHistTopologyLink =
- new EventHistory<EventHistoryTopologyLink>("Topology: Link");
- this.evHistTopologyCluster =
- new EventHistory<EventHistoryTopologyCluster>("Topology: Cluster");
}
@Override
@@ -1826,88 +1787,6 @@
setControllerTLV();
}
- // ****************************************************
- // Topology Manager's Event History members and methods
- // ****************************************************
-
- // Topology Manager event history
- public EventHistory<EventHistoryTopologySwitch> evHistTopologySwitch;
- public EventHistory<EventHistoryTopologyLink> evHistTopologyLink;
- public EventHistory<EventHistoryTopologyCluster> evHistTopologyCluster;
- public EventHistoryTopologySwitch evTopoSwitch;
- public EventHistoryTopologyLink evTopoLink;
- public EventHistoryTopologyCluster evTopoCluster;
-
- // Switch Added/Deleted
- private void evHistTopoSwitch(IOFSwitch sw, EvAction actn, String reason) {
- if (evTopoSwitch == null) {
- evTopoSwitch = new EventHistoryTopologySwitch();
- }
- evTopoSwitch.dpid = sw.getId();
- if ((sw.getChannel() != null) &&
- (SocketAddress.class.isInstance(
- sw.getChannel().getRemoteAddress()))) {
- evTopoSwitch.ipv4Addr =
- IPv4.toIPv4Address(((InetSocketAddress) (sw.getChannel().
- getRemoteAddress())).getAddress().getAddress());
- evTopoSwitch.l4Port =
- ((InetSocketAddress) (sw.getChannel().
- getRemoteAddress())).getPort();
- } else {
- evTopoSwitch.ipv4Addr = 0;
- evTopoSwitch.l4Port = 0;
- }
- evTopoSwitch.reason = reason;
- evTopoSwitch = evHistTopologySwitch.put(evTopoSwitch, actn);
- }
-
- // CHECKSTYLE:OFF suppress warning about too many parameters
- private void evHistTopoLink(long srcDpid, long dstDpid, short srcPort,
- short dstPort, int srcPortState, int dstPortState,
- ILinkDiscovery.LinkType linkType,
- EvAction actn, String reason) {
- // CHECKSTYLE:ON
-
- if (evTopoLink == null) {
- evTopoLink = new EventHistoryTopologyLink();
- }
- evTopoLink.srcSwDpid = srcDpid;
- evTopoLink.dstSwDpid = dstDpid;
- evTopoLink.srcSwport = srcPort & 0xffff;
- evTopoLink.dstSwport = dstPort & 0xffff;
- evTopoLink.srcPortState = srcPortState;
- evTopoLink.dstPortState = dstPortState;
- evTopoLink.reason = reason;
- switch (linkType) {
- case DIRECT_LINK:
- evTopoLink.linkType = "DIRECT_LINK";
- break;
- case MULTIHOP_LINK:
- evTopoLink.linkType = "MULTIHOP_LINK";
- break;
- case TUNNEL:
- evTopoLink.linkType = "TUNNEL";
- break;
- case INVALID_LINK:
- default:
- evTopoLink.linkType = "Unknown";
- break;
- }
- evTopoLink = evHistTopologyLink.put(evTopoLink, actn);
- }
-
- public void evHistTopoCluster(long dpid, long clusterIdOld,
- long clusterIdNew, EvAction action, String reason) {
- if (evTopoCluster == null) {
- evTopoCluster = new EventHistoryTopologyCluster();
- }
- evTopoCluster.dpid = dpid;
- evTopoCluster.clusterIdOld = clusterIdOld;
- evTopoCluster.clusterIdNew = clusterIdNew;
- evTopoCluster.reason = reason;
- evTopoCluster = evHistTopologyCluster.put(evTopoCluster, action);
- }
-
@Override
public boolean isAutoPortFastFeature() {
return autoPortFastFeature;