Removed Floodlight's hot-standby HA framework
diff --git a/src/main/java/net/floodlightcontroller/core/IFloodlightProviderService.java b/src/main/java/net/floodlightcontroller/core/IFloodlightProviderService.java
index 93ba58e..436af3d 100644
--- a/src/main/java/net/floodlightcontroller/core/IFloodlightProviderService.java
+++ b/src/main/java/net/floodlightcontroller/core/IFloodlightProviderService.java
@@ -83,11 +83,6 @@
public Map<Long, IOFSwitch> getSwitches();
/**
- * Get the current role of the controller
- */
- public Role getRole();
-
- /**
* Get the current mapping of controller IDs to their IP addresses
* Returns a copy of the current mapping.
* @see IHAListener
@@ -100,11 +95,6 @@
public String getControllerId();
/**
- * Set the role of the controller
- */
- public void setRole(Role role);
-
- /**
* Add a switch listener
* @param listener The module that wants to listen for events
*/
@@ -117,18 +107,6 @@
public void removeOFSwitchListener(IOFSwitchListener listener);
/**
- * Adds a listener for HA role events
- * @param listener The module that wants to listen for events
- */
- public void addHAListener(IHAListener listener);
-
- /**
- * Removes a listener for HA role events
- * @param listener The module that no longer wants to listen for events
- */
- public void removeHAListener(IHAListener listener);
-
- /**
* Terminate the process
*/
public void terminate();
diff --git a/src/main/java/net/floodlightcontroller/core/IHAListener.java b/src/main/java/net/floodlightcontroller/core/IHAListener.java
deleted file mode 100644
index c76f46a..0000000
--- a/src/main/java/net/floodlightcontroller/core/IHAListener.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package net.floodlightcontroller.core;
-
-import java.util.Map;
-
-import net.floodlightcontroller.core.IFloodlightProviderService.Role;
-
-public interface IHAListener {
- /**
- * Gets called when the controller changes role (i.e. Master -> Slave).
- * Note that oldRole CAN be null.
- * @param oldRole The controller's old role
- * @param newRole The controller's new role
- */
- public void roleChanged(Role oldRole, Role newRole);
-
- /**
- * Gets called when the IP addresses of the controller nodes in the
- * controller cluster change. All parameters map controller ID to
- * the controller's IP.
- *
- * @param curControllerNodeIPs The current mapping of controller IDs to IP
- * @param addedControllerNodeIPs These IPs were added since the last update
- * @param removedControllerNodeIPs These IPs were removed since the last update
- */
- public void controllerNodeIPsChanged(
- Map<String, String> curControllerNodeIPs,
- Map<String, String> addedControllerNodeIPs,
- Map<String, String> removedControllerNodeIPs
- );
-}
diff --git a/src/main/java/net/floodlightcontroller/core/internal/Controller.java b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
index 485cba7..38cd5d0 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/Controller.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
@@ -46,7 +46,6 @@
import net.floodlightcontroller.core.FloodlightContext;
import net.floodlightcontroller.core.IFloodlightProviderService;
-import net.floodlightcontroller.core.IHAListener;
import net.floodlightcontroller.core.IListener.Command;
import net.floodlightcontroller.core.IOFMessageListener;
import net.floodlightcontroller.core.IOFSwitch;
@@ -162,7 +161,6 @@
protected HashMap<String, String> controllerNodeIPsCache;
protected Set<IOFSwitchListener> switchListeners;
- protected Set<IHAListener> haListeners;
protected BlockingQueue<IUpdate> updates;
// Module dependencies
@@ -257,71 +255,6 @@
}
}
- /**
- * Update message indicating controller's role has changed
- */
- protected class HARoleUpdate implements IUpdate {
- public Role oldRole;
- public Role newRole;
- public HARoleUpdate(Role newRole, Role oldRole) {
- this.oldRole = oldRole;
- this.newRole = newRole;
- }
- public void dispatch() {
- // Make sure that old and new roles are different.
- if (oldRole == newRole) {
- if (log.isTraceEnabled()) {
- log.trace("HA role update ignored as the old and " +
- "new roles are the same. newRole = {}" +
- "oldRole = {}", newRole, oldRole);
- }
- return;
- }
- if (log.isTraceEnabled()) {
- log.trace("Dispatching HA Role update newRole = {}, oldRole = {}",
- newRole, oldRole);
- }
- if (haListeners != null) {
- for (IHAListener listener : haListeners) {
- listener.roleChanged(oldRole, newRole);
- }
- }
- }
- }
-
- /**
- * Update message indicating
- * IPs of controllers in controller cluster have changed.
- */
- protected class HAControllerNodeIPUpdate implements IUpdate {
- public Map<String,String> curControllerNodeIPs;
- public Map<String,String> addedControllerNodeIPs;
- public Map<String,String> removedControllerNodeIPs;
- public HAControllerNodeIPUpdate(
- HashMap<String,String> curControllerNodeIPs,
- HashMap<String,String> addedControllerNodeIPs,
- HashMap<String,String> removedControllerNodeIPs) {
- this.curControllerNodeIPs = curControllerNodeIPs;
- this.addedControllerNodeIPs = addedControllerNodeIPs;
- this.removedControllerNodeIPs = removedControllerNodeIPs;
- }
- public void dispatch() {
- if (log.isTraceEnabled()) {
- log.trace("Dispatching HA Controller Node IP update "
- + "curIPs = {}, addedIPs = {}, removedIPs = {}",
- new Object[] { curControllerNodeIPs, addedControllerNodeIPs,
- removedControllerNodeIPs }
- );
- }
- if (haListeners != null) {
- for (IHAListener listener: haListeners) {
- listener.controllerNodeIPsChanged(curControllerNodeIPs,
- addedControllerNodeIPs, removedControllerNodeIPs);
- }
- }
- }
- }
-
// ***************
// Getters/Setters
// ***************
@@ -347,47 +280,6 @@
public void setLinkDiscoveryService(ILinkDiscoveryService linkDiscovery) {
this.linkDiscovery = linkDiscovery;
}
-
- @Override
- public Role getRole() {
- synchronized(roleChanger) {
- return role;
- }
- }
-
- @Override
- public void setRole(Role role) {
- if (role == null) throw new NullPointerException("Role can not be null.");
- //if (role == Role.MASTER && this.role == Role.SLAVE) {
- // Reset db state to Inactive for all switches.
- //updateAllInactiveSwitchInfo();
- //}
-
- // Need to synchronize to ensure a reliable ordering on role request
- // messages send and to ensure the list of connected switches is stable
- // RoleChanger will handle the actual sending of the message and
- // timeout handling
- // @see RoleChanger
- synchronized(roleChanger) {
- if (role.equals(this.role)) {
- log.debug("Ignoring role change: role is already {}", role);
- return;
- }
-
- Role oldRole = this.role;
- this.role = role;
-
- log.debug("Submitting role change request to role {}", role);
- roleChanger.submitRequest(connectedSwitches, role);
-
- // Enqueue an update for our listeners.
- try {
- this.updates.put(new HARoleUpdate(role, oldRole));
- } catch (InterruptedException e) {
- log.error("Failure adding update to queue", e);
- }
- }
- }
public void publishUpdate(IUpdate update) {
try {
@@ -1918,7 +1810,6 @@
ListenerDispatcher<OFType,
IOFMessageListener>>();
this.switchListeners = new CopyOnWriteArraySet<IOFSwitchListener>();
- this.haListeners = new CopyOnWriteArraySet<IHAListener>();
this.activeSwitches = new ConcurrentHashMap<Long, IOFSwitch>();
this.connectedSwitches = new HashSet<OFSwitchImpl>();
this.controllerNodeIPsCache = new HashMap<String, String>();
@@ -1950,16 +1841,6 @@
// Add our REST API
restApi.addRestletRoutable(new CoreWebRoutable());
}
-
- @Override
- public void addHAListener(IHAListener listener) {
- this.haListeners.add(listener);
- }
-
- @Override
- public void removeHAListener(IHAListener listener) {
- this.haListeners.remove(listener);
- }
@Override
public Map<String, String> getControllerNodeIPs() {
diff --git a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java
index 1a52418..752675a 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java
@@ -36,8 +36,8 @@
import net.floodlightcontroller.core.FloodlightContext;
import net.floodlightcontroller.core.IFloodlightProviderService;
-import net.floodlightcontroller.core.IOFMessageListener;
import net.floodlightcontroller.core.IFloodlightProviderService.Role;
+import net.floodlightcontroller.core.IOFMessageListener;
import net.floodlightcontroller.core.IOFSwitch;
import net.floodlightcontroller.core.annotations.LogMessageDoc;
import net.floodlightcontroller.core.annotations.LogMessageDocs;
@@ -57,12 +57,12 @@
import org.openflow.protocol.OFMatch;
import org.openflow.protocol.OFMessage;
import org.openflow.protocol.OFPhysicalPort;
-import org.openflow.protocol.OFPort;
-import org.openflow.protocol.OFType;
-import org.openflow.protocol.OFVendor;
import org.openflow.protocol.OFPhysicalPort.OFPortConfig;
import org.openflow.protocol.OFPhysicalPort.OFPortState;
+import org.openflow.protocol.OFPort;
import org.openflow.protocol.OFStatisticsRequest;
+import org.openflow.protocol.OFType;
+import org.openflow.protocol.OFVendor;
import org.openflow.protocol.statistics.OFDescriptionStatistics;
import org.openflow.protocol.statistics.OFStatistics;
import org.openflow.util.HexString;
diff --git a/src/main/java/net/floodlightcontroller/core/web/ControllerRoleResource.java b/src/main/java/net/floodlightcontroller/core/web/ControllerRoleResource.java
deleted file mode 100644
index 2ed87cb..0000000
--- a/src/main/java/net/floodlightcontroller/core/web/ControllerRoleResource.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package net.floodlightcontroller.core.web;
-
-import org.restlet.data.Status;
-import org.restlet.resource.ServerResource;
-
-import net.floodlightcontroller.core.IFloodlightProviderService;
-import net.floodlightcontroller.core.IFloodlightProviderService.Role;
-import net.floodlightcontroller.core.annotations.LogMessageDoc;
-
-import org.restlet.resource.Get;
-import org.restlet.resource.Post;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ControllerRoleResource extends ServerResource {
-
- protected final static Logger log = LoggerFactory.getLogger(ControllerRoleResource.class);
-
- @Get("json")
- public RoleInfo getRole() {
- IFloodlightProviderService floodlightProvider =
- (IFloodlightProviderService)getContext().getAttributes().
- get(IFloodlightProviderService.class.getCanonicalName());
- return new RoleInfo(floodlightProvider.getRole());
- }
-
- @Post("json")
- @LogMessageDoc(level="WARN",
- message="Invalid role value specified in REST API to " +
- "set controller role",
- explanation="An HA role change request was malformed.",
- recommendation=LogMessageDoc.CHECK_CONTROLLER)
- public void setRole(RoleInfo roleInfo) {
- //Role role = Role.lookupRole(roleInfo.getRole());
- Role role = null;
- try {
- role = Role.valueOf(roleInfo.getRole().toUpperCase());
- }
- catch (IllegalArgumentException e) {
- // The role value in the REST call didn't match a valid
- // role name, so just leave the role as null and handle
- // the error below.
- }
- if (role == null) {
- log.warn ("Invalid role value specified in REST API to " +
- "set controller role");
- setStatus(Status.CLIENT_ERROR_BAD_REQUEST, "Invalid role value");
- return;
- }
-
- IFloodlightProviderService floodlightProvider =
- (IFloodlightProviderService)getContext().getAttributes().
- get(IFloodlightProviderService.class.getCanonicalName());
-
- floodlightProvider.setRole(role);
- }
-}
diff --git a/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java b/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
index 7339d6c..00127a6 100644
--- a/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
+++ b/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
@@ -58,7 +58,6 @@
EventHistoryTopologyLinkResource.class);
router.attach("/event-history/topology-cluster/{count}/json",
EventHistoryTopologyClusterResource.class);
- router.attach("/role/json", ControllerRoleResource.class);
router.attach("/health/json", HealthCheckResource.class);
router.attach("/system/uptime/json", SystemUptimeResource.class);
// Following added by ONOS
diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
index 0eac66b..9956a29 100755
--- a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
@@ -38,8 +38,6 @@
import net.floodlightcontroller.core.FloodlightContext;
import net.floodlightcontroller.core.IFloodlightProviderService;
-import net.floodlightcontroller.core.IFloodlightProviderService.Role;
-import net.floodlightcontroller.core.IHAListener;
import net.floodlightcontroller.core.IOFMessageListener;
import net.floodlightcontroller.core.IOFSwitch;
import net.floodlightcontroller.core.IUpdate;
@@ -82,8 +80,7 @@
*/
public class DeviceManagerImpl implements
IDeviceService, IOFMessageListener, ITopologyListener,
-IFloodlightModule, IEntityClassListener,
-IHAListener {
+IFloodlightModule, IEntityClassListener {
protected final static Logger logger =
LoggerFactory.getLogger(DeviceManagerImpl.class);
@@ -647,7 +644,6 @@
apComparator = new AttachmentPointComparator();
floodlightProvider.addOFMessageListener(OFType.PACKET_IN, this);
- floodlightProvider.addHAListener(this);
if (topology != null)
topology.addListener(this);
entityClassifier.addListener(this);
@@ -672,30 +668,6 @@
}
}
- // ***************
- // IHAListener
- // ***************
-
- @Override
- public void roleChanged(Role oldRole, Role newRole) {
- switch(newRole) {
- case SLAVE:
- logger.debug("Resetting device state because of role change");
- startUp(null);
- break;
- default:
- break;
- }
- }
-
- @Override
- public void controllerNodeIPsChanged(
- Map<String, String> curControllerNodeIPs,
- Map<String, String> addedControllerNodeIPs,
- Map<String, String> removedControllerNodeIPs) {
- // no-op
- }
-
// ****************
// Internal methods
// ****************
diff --git a/src/main/java/net/floodlightcontroller/topology/TopologyManager.java b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java
index 3e624e7..5b98593 100644
--- a/src/main/java/net/floodlightcontroller/topology/TopologyManager.java
+++ b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java
@@ -16,10 +16,8 @@
import net.floodlightcontroller.core.FloodlightContext;
import net.floodlightcontroller.core.IFloodlightProviderService;
-import net.floodlightcontroller.core.IFloodlightProviderService.Role;
import net.floodlightcontroller.core.IOFMessageListener;
import net.floodlightcontroller.core.IOFSwitch;
-import net.floodlightcontroller.core.IHAListener;
import net.floodlightcontroller.core.annotations.LogMessageCategory;
import net.floodlightcontroller.core.annotations.LogMessageDoc;
import net.floodlightcontroller.core.module.FloodlightModuleContext;
@@ -44,9 +42,9 @@
import org.openflow.protocol.OFPacketIn;
import org.openflow.protocol.OFPacketOut;
import org.openflow.protocol.OFPort;
+import org.openflow.protocol.OFType;
import org.openflow.protocol.action.OFAction;
import org.openflow.protocol.action.OFActionOutput;
-import org.openflow.protocol.OFType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -59,7 +57,7 @@
public class TopologyManager implements
IFloodlightModule, ITopologyService,
IRoutingService, ILinkDiscoveryListener,
- IOFMessageListener, IHAListener {
+ IOFMessageListener {
protected final static Logger log = LoggerFactory.getLogger(TopologyManager.class);
@@ -564,38 +562,6 @@
return Command.CONTINUE;
}
- // ***************
- // IHAListener
- // ***************
-
- @Override
- public void roleChanged(Role oldRole, Role newRole) {
- switch(newRole) {
- case MASTER:
- if (oldRole == Role.SLAVE) {
- log.debug("Re-computing topology due " +
- "to HA change from SLAVE->MASTER");
- newInstanceTask.reschedule(1, TimeUnit.MILLISECONDS);
- }
- break;
- case SLAVE:
- log.debug("Clearing topology due to " +
- "HA change to SLAVE");
- clearCurrentTopology();
- break;
- default:
- break;
- }
- }
-
- @Override
- public void controllerNodeIPsChanged(
- Map<String, String> curControllerNodeIPs,
- Map<String, String> addedControllerNodeIPs,
- Map<String, String> removedControllerNodeIPs) {
- // no-op
- }
-
// *****************
// IFloodlightModule
// *****************
@@ -661,7 +627,6 @@
newInstanceTask = new SingletonTask(ses, new UpdateTopologyWorker());
linkDiscovery.addListener(this);
floodlightProvider.addOFMessageListener(OFType.PACKET_IN, this);
- floodlightProvider.addHAListener(this);
addRestletRoutable();
}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
index 7b80095..8077201 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
@@ -40,8 +40,6 @@
import net.floodlightcontroller.core.FloodlightContext;
import net.floodlightcontroller.core.IFloodlightProviderService;
-import net.floodlightcontroller.core.IFloodlightProviderService.Role;
-import net.floodlightcontroller.core.IHAListener;
import net.floodlightcontroller.core.IOFMessageListener;
import net.floodlightcontroller.core.IOFSwitch;
import net.floodlightcontroller.core.IOFSwitchListener;
@@ -115,8 +113,7 @@
@LogMessageCategory("Network Topology")
public class LinkDiscoveryManager
implements IOFMessageListener, IOFSwitchListener,
-ILinkDiscoveryService,
-IFloodlightModule, IHAListener {
+ILinkDiscoveryService, IFloodlightModule {
protected IFloodlightProviderService controller;
protected final static Logger log = LoggerFactory.getLogger(LinkDiscoveryManager.class);
@@ -1683,28 +1680,18 @@
log.error("Exception in LLDP send timer.", e);
} finally {
if (!shuttingDown) {
- // null role implies HA mode is not enabled.
- Role role = floodlightProvider.getRole();
- if (role == null || role == Role.MASTER) {
- log.trace("Rescheduling discovery task as role = {}", role);
- discoveryTask.reschedule(DISCOVERY_TASK_INTERVAL,
- TimeUnit.SECONDS);
- } else {
- log.trace("Stopped LLDP rescheduling due to role = {}.", role);
- }
+ // Always reschedule link discovery if we're not
+ // shutting down (no chance of SLAVE role now)
+ log.trace("Rescheduling discovery task");
+ discoveryTask.reschedule(DISCOVERY_TASK_INTERVAL,
+ TimeUnit.SECONDS);
}
}
}
});
- // null role implies HA mode is not enabled.
- Role role = floodlightProvider.getRole();
- if (role == null || role == Role.MASTER) {
- log.trace("Setup: Rescheduling discovery task. role = {}", role);
- discoveryTask.reschedule(DISCOVERY_TASK_INTERVAL, TimeUnit.SECONDS);
- } else {
- log.trace("Setup: Not scheduling LLDP as role = {}.", role);
- }
+ // Always reschedule link discovery as we are never in SLAVE role now
+ discoveryTask.reschedule(DISCOVERY_TASK_INTERVAL, TimeUnit.SECONDS);
// Setup the BDDP task. It is invoked whenever switch port tuples
// are added to the quarantine list.
@@ -1717,7 +1704,6 @@
floodlightProvider.addOFMessageListener(OFType.PORT_STATUS, this);
// Register for switch updates
floodlightProvider.addOFSwitchListener(this);
- floodlightProvider.addHAListener(this);
if (restApi != null)
restApi.addRestletRoutable(new LinkDiscoveryWebRoutable());
setControllerTLV();
@@ -1802,45 +1788,6 @@
evTopoCluster = evHistTopologyCluster.put(evTopoCluster, action);
}
- // IHARoleListener
- @Override
- public void roleChanged(Role oldRole, Role newRole) {
- switch(newRole) {
- case MASTER:
- if (oldRole == Role.SLAVE) {
- if (log.isTraceEnabled()) {
- log.trace("Sending LLDPs " +
- "to HA change from SLAVE->MASTER");
- }
- //clearAllLinks();
- log.debug("Role Change to Master: Rescheduling discovery task.");
- discoveryTask.reschedule(1, TimeUnit.MICROSECONDS);
- }
- break;
- case SLAVE:
- if (log.isTraceEnabled()) {
- log.trace("Clearing links due to " +
- "HA change to SLAVE");
- }
- switchLinks.clear();
- links.clear();
- portLinks.clear();
- portBroadcastDomainLinks.clear();
- discoverOnAllPorts();
- break;
- default:
- break;
- }
- }
-
- @Override
- public void controllerNodeIPsChanged(
- Map<String, String> curControllerNodeIPs,
- Map<String, String> addedControllerNodeIPs,
- Map<String, String> removedControllerNodeIPs) {
- // ignore
- }
-
public boolean isAutoPortFastFeature() {
return autoPortFastFeature;
}
diff --git a/src/test/java/net/floodlightcontroller/core/internal/ControllerTest.java b/src/test/java/net/floodlightcontroller/core/internal/ControllerTest.java
index b790a8e..fede0ce 100644
--- a/src/test/java/net/floodlightcontroller/core/internal/ControllerTest.java
+++ b/src/test/java/net/floodlightcontroller/core/internal/ControllerTest.java
@@ -623,40 +623,6 @@
*/
@Test
- public void testSetRoleNull() {
- try {
- controller.setRole(null);
- fail("Should have thrown an Exception");
- }
- catch (NullPointerException e) {
- //exptected
- }
- }
-
- @Test
- public void testSetRole() {
- controller.connectedSwitches.add(new OFSwitchImpl());
- RoleChanger roleChanger = createMock(RoleChanger.class);
- roleChanger.submitRequest(controller.connectedSwitches, Role.SLAVE);
- controller.roleChanger = roleChanger;
-
- assertEquals("Check that update queue is empty", 0,
- controller.updates.size());
-
- replay(roleChanger);
- controller.setRole(Role.SLAVE);
- verify(roleChanger);
-
- IUpdate upd = controller.updates.poll();
- assertNotNull("Check that update queue has an update", upd);
- assertTrue("Check that update is HARoleUpdate",
- upd instanceof Controller.HARoleUpdate);
- Controller.HARoleUpdate roleUpd = (Controller.HARoleUpdate)upd;
- assertSame(Role.MASTER, roleUpd.oldRole);
- assertSame(Role.SLAVE, roleUpd.newRole);
- }
-
- @Test
public void testCheckSwitchReady() {
OFChannelState state = new OFChannelState();
Controller.OFChannelHandler chdlr = controller.new OFChannelHandler(state);
diff --git a/src/test/java/net/floodlightcontroller/core/test/MockFloodlightProvider.java b/src/test/java/net/floodlightcontroller/core/test/MockFloodlightProvider.java
index c5f3bbd..f3abae8 100644
--- a/src/test/java/net/floodlightcontroller/core/test/MockFloodlightProvider.java
+++ b/src/test/java/net/floodlightcontroller/core/test/MockFloodlightProvider.java
@@ -31,7 +31,6 @@
import net.floodlightcontroller.core.FloodlightContext;
import net.floodlightcontroller.core.IFloodlightProviderService;
-import net.floodlightcontroller.core.IHAListener;
import net.floodlightcontroller.core.IListener.Command;
import net.floodlightcontroller.core.IOFMessageListener;
import net.floodlightcontroller.core.IOFSwitch;
@@ -60,7 +59,6 @@
protected final static Logger log = LoggerFactory.getLogger(MockFloodlightProvider.class);
protected ConcurrentMap<OFType, ListenerDispatcher<OFType,IOFMessageListener>> listeners;
protected List<IOFSwitchListener> switchListeners;
- protected List<IHAListener> haListeners;
protected Map<Long, IOFSwitch> switches;
protected BasicFactory factory;
@@ -72,7 +70,6 @@
IOFMessageListener>>();
switches = new ConcurrentHashMap<Long, IOFSwitch>();
switchListeners = new CopyOnWriteArrayList<IOFSwitchListener>();
- haListeners = new CopyOnWriteArrayList<IHAListener>();
factory = new BasicFactory();
}
@@ -255,37 +252,6 @@
}
@Override
- public void addHAListener(IHAListener listener) {
- haListeners.add(listener);
- }
-
- @Override
- public void removeHAListener(IHAListener listener) {
- haListeners.remove(listener);
- }
-
- @Override
- public Role getRole() {
- return null;
- }
-
- @Override
- public void setRole(Role role) {
-
- }
-
- /**
- * Dispatches a new role change notification
- * @param oldRole
- * @param newRole
- */
- public void dispatchRoleChanged(Role oldRole, Role newRole) {
- for (IHAListener rl : haListeners) {
- rl.roleChanged(oldRole, newRole);
- }
- }
-
- @Override
public String getControllerId() {
return "localhost";
}
diff --git a/src/test/java/net/floodlightcontroller/topology/TopologyManagerTest.java b/src/test/java/net/floodlightcontroller/topology/TopologyManagerTest.java
index 06b48a2..280c336 100644
--- a/src/test/java/net/floodlightcontroller/topology/TopologyManagerTest.java
+++ b/src/test/java/net/floodlightcontroller/topology/TopologyManagerTest.java
@@ -1,12 +1,10 @@
package net.floodlightcontroller.topology;
import net.floodlightcontroller.core.IFloodlightProviderService;
-import net.floodlightcontroller.core.IFloodlightProviderService.Role;
import net.floodlightcontroller.core.module.FloodlightModuleContext;
import net.floodlightcontroller.core.test.MockThreadPoolService;
import net.floodlightcontroller.test.FloodlightTestCase;
import net.floodlightcontroller.threadpool.IThreadPoolService;
-import net.floodlightcontroller.topology.TopologyManager;
import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscovery;
import org.junit.Before;
@@ -129,14 +127,4 @@
assertTrue(tm.getPortBroadcastDomainLinks().size()==0);
assertTrue(tm.getTunnelPorts().size()==0);
}
-
- @Test
- public void testHARoleChange() throws Exception {
- testBasic2();
- getMockFloodlightProvider().dispatchRoleChanged(null, Role.SLAVE);
- assert(tm.switchPorts.isEmpty());
- assert(tm.switchPortLinks.isEmpty());
- assert(tm.portBroadcastDomainLinks.isEmpty());
- assert(tm.tunnelLinks.isEmpty());
- }
}
diff --git a/src/test/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManagerTest.java b/src/test/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManagerTest.java
index cb6c607..ecb87cf 100644
--- a/src/test/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManagerTest.java
+++ b/src/test/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManagerTest.java
@@ -28,7 +28,6 @@
import java.util.Map;
import net.floodlightcontroller.core.IFloodlightProviderService;
-import net.floodlightcontroller.core.IFloodlightProviderService.Role;
import net.floodlightcontroller.core.IOFSwitch;
import net.floodlightcontroller.core.module.FloodlightModuleContext;
import net.floodlightcontroller.core.test.MockThreadPoolService;
@@ -388,36 +387,4 @@
assertTrue(topology.portBroadcastDomainLinks.get(srcNpt).contains(lt));
assertTrue(topology.portBroadcastDomainLinks.get(dstNpt).contains(lt));
}
-
- @Test
- public void testHARoleChange() throws Exception {
- LinkDiscoveryManager topology = getTopology();
- IOFSwitch sw1 = createMockSwitch(1L);
- IOFSwitch sw2 = createMockSwitch(2L);
- replay(sw1, sw2);
- Link lt = new Link(1L, 2, 2L, 1);
- NodePortTuple srcNpt = new NodePortTuple(1L, 2);
- NodePortTuple dstNpt = new NodePortTuple(2L, 1);
- LinkInfo info = new LinkInfo(System.currentTimeMillis(),
- System.currentTimeMillis(), null,
- 0, 0);
- topology.addOrUpdateLink(lt, info);
-
- // check invariants hold
- assertNotNull(topology.switchLinks.get(lt.getSrc()));
- assertTrue(topology.switchLinks.get(lt.getSrc()).contains(lt));
- assertNotNull(topology.portLinks.get(srcNpt));
- assertTrue(topology.portLinks.get(srcNpt).contains(lt));
- assertNotNull(topology.portLinks.get(dstNpt));
- assertTrue(topology.portLinks.get(dstNpt).contains(lt));
- assertTrue(topology.links.containsKey(lt));
-
- // check that it clears from memory
- getMockFloodlightProvider().dispatchRoleChanged(null, Role.SLAVE);
- assertTrue(topology.switchLinks.isEmpty());
- getMockFloodlightProvider().dispatchRoleChanged(Role.SLAVE, Role.MASTER);
- // check that lldps were sent
- assertTrue(ldm.isSendLLDPsCalled);
- ldm.reset();
- }
}