relinquishes mastership when device disconnects
Change-Id: I1aecc8862ce297569c358e1deb5ddc5fb52d5dd3
diff --git a/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java b/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java
index 20ebc40..a0da87c 100644
--- a/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java
+++ b/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java
@@ -78,22 +78,15 @@
checkNotNull(deviceId, DEVICE_ID_NULL);
checkNotNull(role, ROLE_NULL);
- MastershipRole current = store.getRole(nodeId, deviceId);
- if (role.equals(current)) {
- return;
+ MastershipEvent event = null;
+ if (role.equals(MastershipRole.MASTER)) {
+ event = store.setMaster(nodeId, deviceId);
} else {
- MastershipEvent event = null;
- if (role.equals(MastershipRole.MASTER)) {
- //current was STANDBY, wanted MASTER
- event = store.setMaster(nodeId, deviceId);
- } else {
- //current was MASTER, wanted STANDBY
- event = store.unsetMaster(nodeId, deviceId);
- }
+ event = store.unsetMaster(nodeId, deviceId);
+ }
- if (event != null) {
- post(event);
- }
+ if (event != null) {
+ post(event);
}
}
@@ -105,10 +98,7 @@
@Override
public void relinquishMastership(DeviceId deviceId) {
- checkNotNull(deviceId, DEVICE_ID_NULL);
-
- MastershipRole role = store.getRole(
- clusterService.getLocalNode().id(), deviceId);
+ MastershipRole role = getLocalRole(deviceId);
if (!role.equals(MastershipRole.MASTER)) {
return;
}