Integrated Kryo serializers with the communications manager and IO loop stuff.
diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/cluster/impl/DistributedClusterStore.java b/core/store/dist/src/main/java/org/onlab/onos/store/cluster/impl/DistributedClusterStore.java
index 025804a..647690e 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/cluster/impl/DistributedClusterStore.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/cluster/impl/DistributedClusterStore.java
@@ -127,9 +127,17 @@
@Override
public void removeNode(NodeId nodeId) {
- DefaultControllerNode node = nodes.remove(nodeId);
- if (node != null) {
- communicationAdminService.removeNode(node);
+ if (nodeId.equals(localNode.id())) {
+ // FIXME: this is still broken
+ // We are being ejected from the cluster, so remove all other nodes.
+ communicationAdminService.clearAllNodesAndStreams();
+ nodes.clear();
+ } else {
+ // Remove the other node.
+ DefaultControllerNode node = nodes.remove(nodeId);
+ if (node != null) {
+ communicationAdminService.removeNode(node);
+ }
}
}
@@ -148,6 +156,11 @@
public void nodeVanished(NodeId nodeId) {
states.put(nodeId, State.INACTIVE);
}
+
+ @Override
+ public void nodeRemoved(NodeId nodeId) {
+ removeNode(nodeId);
+ }
}
}