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
+}