role assertion failure is returned to DeviceProvider
Change-Id: Ic5189327c85fa37b3bbfa07d0e285cabae363712
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 1271bc8..8958fb6 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
@@ -142,6 +142,26 @@
providerService.portStatusChanged(deviceId(uri(dpid)), portDescription);
}
+ @Override
+ public void roleAssertFailed(Dpid dpid, RoleState role) {
+ MastershipRole failed;
+ switch (role) {
+ case MASTER:
+ failed = MastershipRole.MASTER;
+ break;
+ case EQUAL:
+ failed = MastershipRole.STANDBY;
+ break;
+ case SLAVE:
+ failed = MastershipRole.NONE;
+ break;
+ default:
+ LOG.warn("unknown role {}", role);
+ return;
+ }
+ providerService.unableToAssertRole(deviceId(uri(dpid)), failed);
+ }
+
/**
* Builds a list of port descriptions for a given list of ports.
*
@@ -169,6 +189,7 @@
!port.getConfig().contains(OFPortConfig.PORT_DOWN);
return new DefaultPortDescription(portNo, enabled);
}
+
}
}