Repository: incubator-ranger Updated Branches: refs/heads/ranger-0.5 b11673164 -> d557e97d6
RANGER-602: Solr client in SolrCloud mode should work with zookeeper settings also (cherry picked from commit 68a406e052550e52bf01aad75cfcf192ce276432) Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/836aa92b Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/836aa92b Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/836aa92b Branch: refs/heads/ranger-0.5 Commit: 836aa92bdbc19e17408662eb64f424281e582c26 Parents: b116731 Author: Don Bosco Durai <[email protected]> Authored: Thu Sep 10 15:23:07 2015 -0700 Committer: Don Bosco Durai <[email protected]> Committed: Tue Nov 17 14:58:25 2015 -0800 ---------------------------------------------------------------------- .../audit/destination/SolrAuditDestination.java | 44 +++++++++++++++----- 1 file changed, 33 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/836aa92b/agents-audit/src/main/java/org/apache/ranger/audit/destination/SolrAuditDestination.java ---------------------------------------------------------------------- diff --git a/agents-audit/src/main/java/org/apache/ranger/audit/destination/SolrAuditDestination.java b/agents-audit/src/main/java/org/apache/ranger/audit/destination/SolrAuditDestination.java index 213e4b2..f875842 100644 --- a/agents-audit/src/main/java/org/apache/ranger/audit/destination/SolrAuditDestination.java +++ b/agents-audit/src/main/java/org/apache/ranger/audit/destination/SolrAuditDestination.java @@ -43,7 +43,9 @@ public class SolrAuditDestination extends AuditDestination { public static final String PROP_SOLR_URLS = "urls"; public static final String PROP_SOLR_ZK = "zookeepers"; + public static final String PROP_SOLR_COLLECTION = "collection"; + public static final String DEFAULT_COLLECTION_NAME = "ranger_audits"; SolrClient solrClient = null; public SolrAuditDestination() { @@ -55,7 +57,7 @@ public class SolrAuditDestination extends AuditDestination { super.init(props, propPrefix); connect(); } - + @Override public void stop() { super.stop(); @@ -67,13 +69,12 @@ public class SolrAuditDestination extends AuditDestination { if (solrClient == null) { String urls = MiscUtil.getStringProperty(props, propPrefix + "." + PROP_SOLR_URLS); - if( urls != null) { + if (urls != null) { urls = urls.trim(); } if (urls != null && urls.equalsIgnoreCase("NONE")) { urls = null; } - List<String> solrURLs = new ArrayList<String>(); String zkHosts = null; @@ -84,11 +85,32 @@ public class SolrAuditDestination extends AuditDestination { zkHosts = null; } - try { - if (zkHosts != null && !zkHosts.isEmpty()) { + String collectionName = MiscUtil.getStringProperty(props, + propPrefix + "." + PROP_SOLR_COLLECTION); + if (collectionName == null + || collectionName.equalsIgnoreCase("none")) { + collectionName = DEFAULT_COLLECTION_NAME; + } + + LOG.info("Solr zkHosts=" + zkHosts + ", solrURLs=" + urls + + ", collectionName=" + collectionName); + + if (zkHosts != null && !zkHosts.isEmpty()) { + LOG.info("Connecting to solr cloud using zkHosts=" + + zkHosts); + try { // Instantiate - solrClient = new CloudSolrClient(zkHosts); - } else if (solrURLs != null && !solrURLs.isEmpty()) { + CloudSolrClient solrCloudClient = new CloudSolrClient( + zkHosts); + solrCloudClient.setDefaultCollection(collectionName); + solrClient = solrCloudClient; + } catch (Throwable t) { + LOG.fatal("Can't connect to Solr server. ZooKeepers=" + + zkHosts, t); + } + } else if (solrURLs != null && !solrURLs.isEmpty()) { + try { + LOG.info("Connecting to Solr using URLs=" + solrURLs); LBHttpSolrClient lbSolrClient = new LBHttpSolrClient( solrURLs.get(0)); lbSolrClient.setConnectionTimeout(1000); @@ -97,10 +119,10 @@ public class SolrAuditDestination extends AuditDestination { lbSolrClient.addSolrServer(solrURLs.get(i)); } solrClient = lbSolrClient; + } catch (Throwable t) { + LOG.fatal("Can't connect to Solr server. URL=" + + solrURLs, t); } - } catch (Throwable t) { - LOG.fatal("Can't connect to Solr server. URL=" + solrURLs, - t); } } } @@ -111,7 +133,7 @@ public class SolrAuditDestination extends AuditDestination { try { logStatusIfRequired(); addTotalCount(events.size()); - + if (solrClient == null) { connect(); if (solrClient == null) {
