You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by sp...@apache.org on 2019/03/08 01:57:48 UTC

[ranger] branch master updated: RANGER-2345: Upgrade Solr version in Ranger to 7.7.1

This is an automated email from the ASF dual-hosted git repository.

spolavarapu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new 4f0a7ea  RANGER-2345: Upgrade Solr version in Ranger to 7.7.1
4f0a7ea is described below

commit 4f0a7eae12850357014bff1ed0545fe401d1400c
Author: Sailaja Polavarapu <sp...@hortonworks.com>
AuthorDate: Thu Mar 7 17:57:33 2019 -0800

    RANGER-2345: Upgrade Solr version in Ranger to 7.7.1
---
 .../audit/destination/SolrAuditDestination.java    | 27 ++++++++-----
 .../audit/provider/solr/SolrAuditProvider.java     | 14 +++----
 .../solr/client/ServiceSolrConnectionMgr.java      |  4 +-
 pom.xml                                            |  2 +-
 .../patch/cliutil/DbToSolrMigrationUtil.java       | 34 +++++++++--------
 .../main/java/org/apache/ranger/solr/SolrMgr.java  | 44 ++++++++++------------
 6 files changed, 66 insertions(+), 59 deletions(-)

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 11da40e..80a6d9e 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
@@ -29,7 +29,8 @@ import org.apache.ranger.audit.utils.SolrAppUtil;
 import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.impl.CloudSolrClient;
 import org.apache.solr.client.solrj.impl.HttpClientUtil;
-import org.apache.solr.client.solrj.impl.Krb5HttpClientConfigurer;
+import org.apache.solr.client.solrj.impl.Krb5HttpClientBuilder;
+import org.apache.solr.client.solrj.impl.SolrHttpClientBuilder;
 import org.apache.solr.client.solrj.impl.LBHttpSolrClient;
 import org.apache.solr.client.solrj.response.UpdateResponse;
 import org.apache.solr.common.SolrException;
@@ -42,6 +43,8 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Properties;
+import java.util.Arrays;
+import java.util.Optional;
 
 
 public class SolrAuditDestination extends AuditDestination {
@@ -112,13 +115,15 @@ public class SolrAuditDestination extends AuditDestination {
 								+ zkHosts);
 						try {
 							// Instantiate
-							HttpClientUtil.setConfigurer(new Krb5HttpClientConfigurer());
-							final String zkhosts =zkHosts;
+							Krb5HttpClientBuilder krbBuild = new Krb5HttpClientBuilder();
+							SolrHttpClientBuilder kb = krbBuild.getBuilder();
+							HttpClientUtil.setHttpClientBuilder(kb);
+
+							final List<String> zkhosts = new ArrayList<String>(Arrays.asList(zkHosts.split(",")));
 							final CloudSolrClient solrCloudClient = MiscUtil.executePrivilegedAction(new PrivilegedExceptionAction<CloudSolrClient>() {
 								@Override
 								public CloudSolrClient run()  throws Exception {
-									CloudSolrClient solrCloudClient = new CloudSolrClient(
-											zkhosts);
+									CloudSolrClient solrCloudClient = new CloudSolrClient.Builder(zkhosts, Optional.empty()).build();
 									return solrCloudClient;
 								};
 							});
@@ -135,19 +140,21 @@ public class SolrAuditDestination extends AuditDestination {
 					} else if (solrURLs != null && !solrURLs.isEmpty()) {
 						try {
 							LOG.info("Connecting to Solr using URLs=" + solrURLs);
-							HttpClientUtil.setConfigurer(new Krb5HttpClientConfigurer());
+							Krb5HttpClientBuilder krbBuild = new Krb5HttpClientBuilder();
+							SolrHttpClientBuilder kb = krbBuild.getBuilder();
+							HttpClientUtil.setHttpClientBuilder(kb);
 							final List<String> solrUrls = solrURLs;
 							final LBHttpSolrClient lbSolrClient = MiscUtil.executePrivilegedAction(new PrivilegedExceptionAction<LBHttpSolrClient>() {
 								@Override
 								public LBHttpSolrClient run()  throws Exception {
-									LBHttpSolrClient lbSolrClient = new LBHttpSolrClient(
-											solrUrls.get(0));
+									LBHttpSolrClient.Builder builder = new LBHttpSolrClient.Builder();
+									builder.withBaseSolrUrl(solrUrls.get(0));
+									builder.withConnectionTimeout(1000);
+									LBHttpSolrClient lbSolrClient = builder.build();
 									return lbSolrClient;
 								};
 							});
 
-							lbSolrClient.setConnectionTimeout(1000);
-
 							for (int i = 1; i < solrURLs.size(); i++) {
 								lbSolrClient.addSolrServer(solrURLs.get(i));
 							}
diff --git a/agents-audit/src/main/java/org/apache/ranger/audit/provider/solr/SolrAuditProvider.java b/agents-audit/src/main/java/org/apache/ranger/audit/provider/solr/SolrAuditProvider.java
index 325d250..ee95800 100644
--- a/agents-audit/src/main/java/org/apache/ranger/audit/provider/solr/SolrAuditProvider.java
+++ b/agents-audit/src/main/java/org/apache/ranger/audit/provider/solr/SolrAuditProvider.java
@@ -97,18 +97,16 @@ public class SolrAuditProvider extends AuditDestination {
 						solrClient = MiscUtil.executePrivilegedAction(new PrivilegedExceptionAction<SolrClient>() {
 							@Override
 							public SolrClient run()  throws Exception {
-								SolrClient solrClient = new HttpSolrClient(solrURL);
-								return solrClient;
+								HttpSolrClient.Builder builder = new HttpSolrClient.Builder();
+								builder.withBaseSolrUrl(solrURL);
+								builder.allowCompression(true);
+								builder.withConnectionTimeout(1000);
+								HttpSolrClient httpSolrClient = builder.build();
+								return httpSolrClient;
 							};
 						});
 
 						me = solrClient;
-						if (solrClient instanceof HttpSolrClient) {
-							HttpSolrClient httpSolrClient = (HttpSolrClient) solrClient;
-							httpSolrClient.setAllowCompression(true);
-							httpSolrClient.setConnectionTimeout(1000);
-							// solrClient.setSoTimeout(10000);
-						}
 					} catch (Throwable t) {
 						LOG.fatal("Can't connect to Solr server. URL="
 								+ solrURL, t);
diff --git a/plugin-solr/src/main/java/org/apache/ranger/services/solr/client/ServiceSolrConnectionMgr.java b/plugin-solr/src/main/java/org/apache/ranger/services/solr/client/ServiceSolrConnectionMgr.java
index 43a85a4..f56373b 100644
--- a/plugin-solr/src/main/java/org/apache/ranger/services/solr/client/ServiceSolrConnectionMgr.java
+++ b/plugin-solr/src/main/java/org/apache/ranger/services/solr/client/ServiceSolrConnectionMgr.java
@@ -32,7 +32,9 @@ public class ServiceSolrConnectionMgr {
 		if (url != null) {
 			//TODO: Determine whether the instance is SolrCloud
 			boolean isSolrCloud = true;
-			SolrClient solrClient = new HttpSolrClient(url);
+			HttpSolrClient.Builder builder = new HttpSolrClient.Builder();
+			builder.withBaseSolrUrl(url);
+			SolrClient solrClient = builder.build();
 			ServiceSolrClient serviceSolrClient = new ServiceSolrClient(
 					solrClient, isSolrCloud, configs);
 			return serviceSolrClient;
diff --git a/pom.xml b/pom.xml
index 87bea23..d5c4e92 100644
--- a/pom.xml
+++ b/pom.xml
@@ -161,7 +161,7 @@
         <security-agent-install-dir>hadoop-security/plugins</security-agent-install-dir>
         <servlet.api.version>2.5</servlet.api.version>
         <slf4j-api.version>1.7.25</slf4j-api.version>
-        <solr.version>5.5.4</solr.version>
+        <solr.version>7.7.1</solr.version>
         <spring-ldap-core.version>2.3.2.RELEASE</spring-ldap-core.version>
         <springframework.security.version>4.2.7.RELEASE</springframework.security.version>
         <springframework.test.version>4.3.18.RELEASE</springframework.test.version>
diff --git a/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java
index 3a1f934..c20bcfa 100644
--- a/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/DbToSolrMigrationUtil.java
@@ -27,6 +27,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 import java.util.UUID;
+import java.util.Arrays;
 
 import org.apache.log4j.Logger;
 import org.apache.ranger.db.RangerDaoManager;
@@ -48,7 +49,8 @@ import org.apache.solr.client.solrj.impl.BinaryRequestWriter;
 import org.apache.solr.client.solrj.impl.CloudSolrClient;
 import org.apache.solr.client.solrj.impl.HttpClientUtil;
 import org.apache.solr.client.solrj.impl.HttpSolrClient;
-import org.apache.solr.client.solrj.impl.Krb5HttpClientConfigurer;
+import org.apache.solr.client.solrj.impl.Krb5HttpClientBuilder;
+import org.apache.solr.client.solrj.impl.SolrHttpClientBuilder;
 import org.apache.solr.client.solrj.response.UpdateResponse;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.common.SolrInputField;
@@ -405,9 +407,11 @@ public class DbToSolrMigrationUtil extends BaseLoader {
 
 			try {
 				// Instantiate
-				HttpClientUtil.setConfigurer(new Krb5HttpClientConfigurer());
-				CloudSolrClient solrCloudClient = new CloudSolrClient(
-						zkHosts);
+				Krb5HttpClientBuilder krbBuild = new Krb5HttpClientBuilder();
+				SolrHttpClientBuilder kb = krbBuild.getBuilder();
+				HttpClientUtil.setHttpClientBuilder(kb);
+				final List<String> zkhosts = new ArrayList<String>(Arrays.asList(zkHosts.split(",")));
+				CloudSolrClient solrCloudClient = new CloudSolrClient.Builder(zkhosts, null).build();
 				solrCloudClient
 						.setDefaultCollection(collectionName);
 				return solrCloudClient;
@@ -427,17 +431,17 @@ public class DbToSolrMigrationUtil extends BaseLoader {
 						+ SOLR_URLS_PROP);
 			} else {
 				try {
-					HttpClientUtil.setConfigurer(new Krb5HttpClientConfigurer());
-					solrClient = new HttpSolrClient(solrURL);
-					if (solrClient instanceof HttpSolrClient) {
-						HttpSolrClient httpSolrClient = (HttpSolrClient) solrClient;
-						httpSolrClient
-								.setAllowCompression(true);
-						httpSolrClient
-								.setConnectionTimeout(1000);
-						httpSolrClient
-								.setRequestWriter(new BinaryRequestWriter());
-						}
+					Krb5HttpClientBuilder krbBuild = new Krb5HttpClientBuilder();
+					SolrHttpClientBuilder kb = krbBuild.getBuilder();
+					HttpClientUtil.setHttpClientBuilder(kb);
+					HttpSolrClient.Builder builder = new HttpSolrClient.Builder();
+					builder.withBaseSolrUrl(solrURL);
+					builder.allowCompression(true);
+					builder.withConnectionTimeout(1000);
+					HttpSolrClient httpSolrClient = builder.build();
+					httpSolrClient.setRequestWriter(new BinaryRequestWriter());
+					solrClient = httpSolrClient;
+
 					} catch (Exception e) {
 					logger.fatal(
 							"Can't connect to Solr server. URL="
diff --git a/security-admin/src/main/java/org/apache/ranger/solr/SolrMgr.java b/security-admin/src/main/java/org/apache/ranger/solr/SolrMgr.java
index 795b976..f4eab64 100644
--- a/security-admin/src/main/java/org/apache/ranger/solr/SolrMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/solr/SolrMgr.java
@@ -19,8 +19,7 @@
 
 package org.apache.ranger.solr;
 
-import java.util.Date;
-import java.util.Properties;
+import java.util.*;
 
 import org.apache.log4j.Logger;
 import org.apache.ranger.audit.utils.InMemoryJAASConfiguration;
@@ -31,7 +30,8 @@ import org.apache.solr.client.solrj.impl.BinaryRequestWriter;
 import org.apache.solr.client.solrj.impl.CloudSolrClient;
 import org.apache.solr.client.solrj.impl.HttpClientUtil;
 import org.apache.solr.client.solrj.impl.HttpSolrClient;
-import org.apache.solr.client.solrj.impl.Krb5HttpClientConfigurer;
+import org.apache.solr.client.solrj.impl.Krb5HttpClientBuilder;
+import org.apache.solr.client.solrj.impl.SolrHttpClientBuilder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -109,9 +109,11 @@ public class SolrMgr {
 
 							try {
 								// Instantiate
-								HttpClientUtil.setConfigurer(new Krb5HttpClientConfigurer());
-								CloudSolrClient solrCloudClient = new CloudSolrClient(
-										zkHosts);
+								Krb5HttpClientBuilder krbBuild = new Krb5HttpClientBuilder();
+								SolrHttpClientBuilder kb = krbBuild.getBuilder();
+								HttpClientUtil.setHttpClientBuilder(kb);
+								final List<String> zkhosts = new ArrayList<String>(Arrays.asList(zkHosts.split(",")));
+								CloudSolrClient solrCloudClient = new CloudSolrClient.Builder(zkhosts, Optional.empty()).build();
 								solrCloudClient
 										.setDefaultCollection(collectionName);
 								solrClient = solrCloudClient;
@@ -131,24 +133,18 @@ public class SolrMgr {
 										+ SOLR_URLS_PROP);
 							} else {
 								try {
-									HttpClientUtil.setConfigurer(new Krb5HttpClientConfigurer());
-									solrClient = new HttpSolrClient(solrURL);
-									if (solrClient == null) {
-										logger.fatal("Can't connect to Solr. URL="
-												+ solrURL);
-									} else {
-										if (solrClient instanceof HttpSolrClient) {
-											HttpSolrClient httpSolrClient = (HttpSolrClient) solrClient;
-											httpSolrClient
-													.setAllowCompression(true);
-											httpSolrClient
-													.setConnectionTimeout(1000);
-											// httpSolrClient.setSoTimeout(10000);
-											httpSolrClient
-													.setRequestWriter(new BinaryRequestWriter());
-										}
-										initDone = true;
-									}
+									Krb5HttpClientBuilder krbBuild = new Krb5HttpClientBuilder();
+									SolrHttpClientBuilder kb = krbBuild.getBuilder();
+									HttpClientUtil.setHttpClientBuilder(kb);
+									HttpSolrClient.Builder builder = new HttpSolrClient.Builder();
+									builder.withBaseSolrUrl(solrURL);
+									builder.allowCompression(true);
+									builder.withConnectionTimeout(1000);
+									HttpSolrClient httpSolrClient = builder.build();
+									httpSolrClient
+											.setRequestWriter(new BinaryRequestWriter());
+									solrClient = httpSolrClient;
+									initDone = true;
 
 								} catch (Throwable t) {
 									logger.fatal(