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/consistent/impl/DatabaseManager.java b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DatabaseManager.java
index 09cc645..7ccdd80 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DatabaseManager.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DatabaseManager.java
@@ -31,8 +31,7 @@
import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.apache.felix.scr.annotations.Service;
import org.onosproject.cluster.ClusterService;
-import org.onosproject.cluster.ControllerNode;
-import org.onosproject.cluster.DefaultControllerNode;
+import org.onosproject.store.cluster.impl.NodeInfo;
import org.onosproject.store.service.ConsistentMap;
import org.onosproject.store.service.PartitionInfo;
import org.onosproject.store.service.Serializer;
@@ -69,8 +68,8 @@
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected ClusterService clusterService;
- protected String nodeToUri(ControllerNode node) {
- return String.format("tcp://%s:%d", node.ip(), COPYCAT_TCP_PORT);
+ protected String nodeToUri(NodeInfo node) {
+ return String.format("tcp://%s:%d", node.getIp(), COPYCAT_TCP_PORT);
}
@Activate
@@ -82,12 +81,11 @@
File file = new File(CONFIG_DIR, PARTITION_DEFINITION_FILE);
log.info("Loading database definition: {}", file.getAbsolutePath());
- DatabaseDefinitionStore databaseDef = new DatabaseDefinitionStore(file);
- Map<String, Set<DefaultControllerNode>> partitionMap;
+ Map<String, Set<NodeInfo>> partitionMap;
try {
- partitionMap = databaseDef.read();
+ DatabaseDefinitionStore databaseDef = new DatabaseDefinitionStore(file);
+ partitionMap = databaseDef.read().getPartitions();
} catch (IOException e) {
- log.error("Failed to load database config {}", file);
throw new IllegalStateException("Failed to load database config", e);
}
@@ -99,7 +97,7 @@
.map(this::nodeToUri)
.toArray(String[]::new);
- String localNodeUri = nodeToUri(clusterService.getLocalNode());
+ String localNodeUri = nodeToUri(NodeInfo.of(clusterService.getLocalNode()));
ClusterConfig clusterConfig = new ClusterConfig()
.withProtocol(new NettyTcpProtocol()