[ONOS-4460] Relinquish device role when partitioned away from cluster
Change-Id: I578029614cced96a2d4503e4fe3052c927f051ab
diff --git a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
index 21f0f76..8e09e8e 100644
--- a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
+++ b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
@@ -729,16 +729,17 @@
}
private void handleMastershipEvent(MastershipEvent event) {
- if (event.type() != MastershipEvent.Type.MASTER_CHANGED) {
+ if (event.type() == MastershipEvent.Type.BACKUPS_CHANGED) {
// Don't care if backup list changed.
return;
}
-
final DeviceId did = event.subject();
// myRole suggested by MastershipService
MastershipRole myNextRole;
- if (localNodeId.equals(event.roleInfo().master())) {
+ if (event.type() == MastershipEvent.Type.SUSPENDED) {
+ myNextRole = NONE; // FIXME STANDBY OR NONE?
+ } else if (localNodeId.equals(event.roleInfo().master())) {
// confirm latest info
MastershipTerm term = termService.getMastershipTerm(did);
final boolean iHaveControl = term != null && localNodeId.equals(term.master());