Github user cestella commented on a diff in the pull request:
https://github.com/apache/metron/pull/1040#discussion_r192221092
--- Diff:
metron-platform/metron-solr/src/main/java/org/apache/metron/solr/dao/SolrDao.java
---
@@ -134,13 +134,30 @@ public void patch(RetrieveLatestDao
retrieveLatestDao, PatchRequest request,
return this.solrColumnMetadataDao.getColumnMetadata(indices);
}
- public SolrClient getSolrClient(String zkHost) {
- return new CloudSolrClient.Builder().withZkHost(zkHost).build();
+ /**
+ * Builds a Solr client using the ZK hosts from the global config.
+ * @return SolrClient
+ */
+ public SolrClient getSolrClient() {
+ return new CloudSolrClient.Builder().withZkHost(getZkHosts()).build();
}
- public String getZkHost() {
+ /**
+ * Builds a Solr client using the ZK hosts specified.
+ * @return SolrClient
+ */
+ public SolrClient getSolrClient(List<String> zkHosts) {
+ return new CloudSolrClient.Builder().withZkHost(zkHosts).build();
+ }
+
+ /**
+ * Get ZK hosts from the global config.
+ * @return List of ZkHosts
+ */
+ public List<String> getZkHosts() {
Map<String, Object> globalConfig =
accessConfig.getGlobalConfigSupplier().get();
- return (String) globalConfig.get("solr.zookeeper");
+ String solrZookeeper = (String) globalConfig.get("solr.zookeeper");
+ return Arrays.asList(solrZookeeper.split(","));
--- End diff --
Have you tried this when people put a space between the nodes? Perhaps
something like
`Lists.newArrayList(Iterables.transform(Splitter.on(",").split(globalConfig.getOrDefault("solr.zookeeper",
""), x -> x.trim()));`
Also, `solr.zookeeper` should be a constant.
---