Added support for firing up multiple raft partitions + Workaround for an issue where db calls timeout when a raft cluster node is down.
Change-Id: I67406da34c8a96b8ab9371d4d9b14653edfd2e2d
diff --git a/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/ClusterManager.java b/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/ClusterManager.java
index 50a0b47..39732df 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/ClusterManager.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/ClusterManager.java
@@ -127,7 +127,13 @@
try {
clusterDefinition = new ClusterDefinitionStore(clusterDefinitionFile.getPath()).read();
- seedNodes = ImmutableSet.copyOf(clusterDefinition.nodes());
+ seedNodes = ImmutableSet.copyOf(clusterDefinition.getNodes())
+ .stream()
+ .map(nodeInfo -> new DefaultControllerNode(
+ new NodeId(nodeInfo.getId()),
+ IpAddress.valueOf(nodeInfo.getIp()),
+ nodeInfo.getTcpPort()))
+ .collect(Collectors.toSet());
} catch (IOException e) {
log.warn("Failed to read cluster definition.", e);
}
@@ -330,11 +336,11 @@
Enumeration<InetAddress> inetAddresses = iface.getInetAddresses();
while (inetAddresses.hasMoreElements()) {
IpAddress ip = IpAddress.valueOf(inetAddresses.nextElement());
- if (AddressUtil.matchInterface(ip.toString(), clusterDefinition.ipPrefix())) {
+ if (AddressUtil.matchInterface(ip.toString(), clusterDefinition.getIpPrefix())) {
return ip;
}
}
}
throw new IllegalStateException("Unable to determine local ip");
}
-}
\ No newline at end of file
+}