You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by me...@apache.org on 2018/09/19 05:40:54 UTC

[2/4] ranger git commit: RANGER-2198 - Remove deprecated client API from HBase plugin

RANGER-2198 - Remove deprecated client API from HBase plugin

Signed-off-by: Colm O hEigeartaigh <co...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/1b335456
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/1b335456
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/1b335456

Branch: refs/heads/ranger-1.1
Commit: 1b33545668fdf33a9b1977c36101f2a9d78cc60b
Parents: 8e19e67
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Fri Aug 24 12:19:43 2018 +0100
Committer: Mehul Parikh <me...@apache.org>
Committed: Wed Sep 19 11:09:07 2018 +0530

----------------------------------------------------------------------
 .../hbase/RangerHBaseResource.java              |  2 +-
 .../services/hbase/client/HBaseClient.java      | 50 ++++++++++----------
 2 files changed, 25 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ranger/blob/1b335456/hbase-agent/src/main/java/org/apache/ranger/authorization/hbase/RangerHBaseResource.java
----------------------------------------------------------------------
diff --git a/hbase-agent/src/main/java/org/apache/ranger/authorization/hbase/RangerHBaseResource.java b/hbase-agent/src/main/java/org/apache/ranger/authorization/hbase/RangerHBaseResource.java
index 1055618..8f84662 100644
--- a/hbase-agent/src/main/java/org/apache/ranger/authorization/hbase/RangerHBaseResource.java
+++ b/hbase-agent/src/main/java/org/apache/ranger/authorization/hbase/RangerHBaseResource.java
@@ -81,7 +81,7 @@ public class RangerHBaseResource extends RangerAccessResourceImpl {
         if (StringUtils.equals(key, KEY_TABLE)) {
             Object value = getValue(key);
             if (value instanceof List) {
-                List tableNames = (List) value;
+                List<?> tableNames = (List<?>) value;
                 if (!tableNames.isEmpty()) {
                     super.setValue(key, tableNames.get(0));
                 }

http://git-wip-us.apache.org/repos/asf/ranger/blob/1b335456/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseClient.java
----------------------------------------------------------------------
diff --git a/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseClient.java b/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseClient.java
index 8c47b57..e74c3e5 100644
--- a/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseClient.java
+++ b/hbase-agent/src/main/java/org/apache/ranger/services/hbase/client/HBaseClient.java
@@ -33,13 +33,13 @@ import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MasterNotRunningException;
+import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.ZooKeeperConnectionException;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.ranger.plugin.client.BaseClient;
 import org.apache.ranger.plugin.client.HadoopException;
 
-import com.google.protobuf.ServiceException;
-
 public class HBaseClient extends BaseClient {
 
 	private static final Log LOG 			 = LogFactory.getLog(HBaseClient.class);
@@ -129,13 +129,14 @@ public class HBaseClient extends BaseClient {
 					@Override
 					public Boolean run() {
 						Boolean hbaseStatus1 = false;
+						Admin admin = null;
 						try {
 							LOG.info("getHBaseStatus: creating default Hbase configuration");
 
 							LOG.info("getHBaseStatus: setting config values from client");
-							setClientConfigValues(conf);						
+							setClientConfigValues(conf);
 							LOG.info("getHBaseStatus: checking HbaseAvailability with the new config");
-							HBaseAdmin.checkHBaseAvailable(conf);					
+							admin = ConnectionFactory.createConnection(conf).getAdmin();
 							LOG.info("getHBaseStatus: no exception: HbaseAvailability true");
 							hbaseStatus1 = true;
 						} catch (ZooKeeperConnectionException zce) {
@@ -160,15 +161,6 @@ public class HBaseClient extends BaseClient {
 							LOG.error(msgDesc + mnre);
 							throw hdpException;
 
-						} catch (ServiceException se) {
-							String msgDesc = "getHBaseStatus: Unable to check availability of "
-									+ "Hbase environment [" + getConfigHolder().getDatasourceName() + "].";
-							HadoopException hdpException = new HadoopException(msgDesc, se);
-							hdpException.generateResponseDataMap(false, getMessage(se),
-									msgDesc + errMsg, null, null);
-							LOG.error(msgDesc + se);
-							throw hdpException;
-
 						} catch(IOException io) {
 							String msgDesc = "getHBaseStatus: Unable to check availability of"
 									+ " Hbase environment [" + getConfigHolder().getDatasourceName() + "].";
@@ -187,7 +179,15 @@ public class HBaseClient extends BaseClient {
 							hdpException.generateResponseDataMap(false, getMessage(e),
 									msgDesc + errMsg, null, null);
 							throw hdpException;
-						}
+						} finally {
+	                        if (admin != null) {
+	                            try {
+	                                admin.close();
+	                            } catch (IOException e) {
+	                                LOG.error("Unable to close HBase connection [" + getConfigHolder().getDatasourceName() + "]", e);
+	                            }
+	                        }
+	                    }
 						return hbaseStatus1;
 					}
 				});
@@ -217,7 +217,7 @@ public class HBaseClient extends BaseClient {
 			if (v != null && !v.equalsIgnoreCase(e.getValue())) {
 				conf.set(e.getKey(), e.getValue());
 			}
-		}		
+		}
 	}
 
 	public List<String> getTableList(final String tableNameMatching, final List<String> existingTableList ) throws HadoopException {
@@ -239,14 +239,13 @@ public class HBaseClient extends BaseClient {
 				public List<String> run() {
 
 					List<String> tableList = new ArrayList<String>();
-					HBaseAdmin admin = null;
+					Admin admin = null;
 					try {
 						LOG.info("getTableList: setting config values from client");
-						setClientConfigValues(conf);						
+						setClientConfigValues(conf);
 						LOG.info("getTableList: checking HbaseAvailability with the new config");
-						HBaseAdmin.checkHBaseAvailable(conf);					
+						admin = ConnectionFactory.createConnection(conf).getAdmin();
 						LOG.info("getTableList: no exception: HbaseAvailability true");
-						admin = new HBaseAdmin(conf);
 						HTableDescriptor [] htds = admin.listTables(tableNameMatching);
 						if (htds != null) {
 							for (HTableDescriptor htd : htds) {
@@ -339,18 +338,17 @@ public class HBaseClient extends BaseClient {
 					@Override
 					public List<String> run() {
 						List<String> colfList = new ArrayList<String>();
-						HBaseAdmin admin = null;
+						Admin admin = null;
 						try {
 							LOG.info("getColumnFamilyList: setting config values from client");
-							setClientConfigValues(conf);						
+							setClientConfigValues(conf);
 							LOG.info("getColumnFamilyList: checking HbaseAvailability with the new config");
-							HBaseAdmin.checkHBaseAvailable(conf);					
+							admin = ConnectionFactory.createConnection(conf).getAdmin();
 							LOG.info("getColumnFamilyList: no exception: HbaseAvailability true");
-							admin = new HBaseAdmin(conf);
 							if (tableList != null) {
 								for (String tableName: tableList) {
 									tblName = tableName;
-									HTableDescriptor htd = admin.getTableDescriptor(tblName.getBytes());
+									HTableDescriptor htd = admin.getTableDescriptor(TableName.valueOf(tblName.getBytes()));
 									if (htd != null) {
 										for (HColumnDescriptor hcd : htd.getColumnFamilies()) {
 											String colf = hcd.getNameAsString();
@@ -404,7 +402,7 @@ public class HBaseClient extends BaseClient {
 							hdpException.generateResponseDataMap(false, getMessage(se),
 									msgDesc + errMsg, null, null);
 							LOG.error(msgDesc + se);
-							throw hdpException;							
+							throw hdpException;
 
 						} catch (Throwable e) {
 							String msgDesc = "getColumnFamilyList: Unable to get HBase ColumnFamilyList for "