vertical feedback path for Role replies
Change-Id: I31bdb85f90901ec79147adeea0df8ceae00ed1dc
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 8aa3d77..1a96fca 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
@@ -226,23 +226,31 @@
}
@Override
- public void roleAssertFailed(Dpid dpid, RoleState role) {
- MastershipRole failed;
- switch (role) {
+ public void receivedRoleReply(Dpid dpid, RoleState requested, RoleState response) {
+ MastershipRole request = roleOf(requested);
+ MastershipRole reply = roleOf(response);
+
+ providerService.receivedRoleReply(deviceId(uri(dpid)), request, reply);
+ }
+
+ /**
+ * Translates a RoleState to the corresponding MastershipRole.
+ *
+ * @param response
+ * @return a MastershipRole
+ */
+ private MastershipRole roleOf(RoleState response) {
+ switch (response) {
case MASTER:
- failed = MastershipRole.MASTER;
- break;
+ return MastershipRole.MASTER;
case EQUAL:
- failed = MastershipRole.STANDBY;
- break;
+ return MastershipRole.STANDBY;
case SLAVE:
- failed = MastershipRole.NONE;
- break;
+ return MastershipRole.NONE;
default:
- LOG.warn("unknown role {}", role);
- return;
+ LOG.warn("unknown role {}", response);
+ return null;
}
- providerService.unableToAssertRole(deviceId(uri(dpid)), failed);
}
/**