Changed argument from Device -> DeviceId
- roleChanged(), isReachable()
Eventually consistent nature of Device store was
interfering with mastership control.
Change-Id: I9c0dd846a4e30863f922f6706c6cb62fd7c83f29
diff --git a/providers/openflow/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java b/providers/openflow/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
index aaa6117..c0cc416 100644
--- a/providers/openflow/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
+++ b/providers/openflow/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
@@ -111,8 +111,8 @@
@Override
- public boolean isReachable(Device device) {
- OpenFlowSwitch sw = controller.getSwitch(dpid(device.id().uri()));
+ public boolean isReachable(DeviceId deviceId) {
+ OpenFlowSwitch sw = controller.getSwitch(dpid(deviceId.uri()));
if (sw == null || !sw.isConnected()) {
return false;
}
@@ -170,22 +170,22 @@
// }
@Override
- public void roleChanged(Device device, MastershipRole newRole) {
+ public void roleChanged(DeviceId deviceId, MastershipRole newRole) {
switch (newRole) {
case MASTER:
- controller.setRole(dpid(device.id().uri()), RoleState.MASTER);
+ controller.setRole(dpid(deviceId.uri()), RoleState.MASTER);
break;
case STANDBY:
- controller.setRole(dpid(device.id().uri()), RoleState.EQUAL);
+ controller.setRole(dpid(deviceId.uri()), RoleState.EQUAL);
break;
case NONE:
- controller.setRole(dpid(device.id().uri()), RoleState.SLAVE);
+ controller.setRole(dpid(deviceId.uri()), RoleState.SLAVE);
break;
default:
LOG.error("Unknown Mastership state : {}", newRole);
}
- LOG.info("Accepting mastership role change for device {}", device.id());
+ LOG.info("Accepting mastership role change for device {}", deviceId);
}
private class InternalDeviceProvider implements OpenFlowSwitchListener {