From 1ce333901e6ed614c82a21d306dc8310c8fe491b Mon Sep 17 00:00:00 2001 From: Ramkrishna Date: Mon, 26 May 2014 11:47:04 +0530 Subject: [PATCH] HBASE-11251-LoadTestTool should grant READ permission for the users that are given READ access for specific cells (Ram) --- .../hadoop/hbase/util/LoadTestTool.java | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java index dd32f3b0e07..bb607a9034c 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java @@ -517,19 +517,38 @@ public class LoadTestTool extends AbstractHBaseTool { if (userOwner != null) { LOG.info("Granting permission for the user " + userOwner.getShortName()); AccessControlProtos.Permission.Action[] actions = { - AccessControlProtos.Permission.Action.ADMIN, - AccessControlProtos.Permission.Action.CREATE, AccessControlProtos.Permission.Action.READ, - AccessControlProtos.Permission.Action.WRITE }; + AccessControlProtos.Permission.Action.ADMIN, AccessControlProtos.Permission.Action.CREATE, + AccessControlProtos.Permission.Action.READ, AccessControlProtos.Permission.Action.WRITE }; try { - AccessControlClient.grant(conf, tableName, userOwner.getShortName(), COLUMN_FAMILY, - null, actions); + AccessControlClient.grant(conf, tableName, userOwner.getShortName(), null, null, actions); } catch (Throwable e) { LOG.fatal("Error in granting permission for the user " + userOwner.getShortName(), e); return EXIT_FAILURE; } } + if (userNames != null) { + // This will be comma separated list of expressions. + String users[] = userNames.split(","); + User user = null; + for (String userStr : users) { + if (isSecure(conf)) { + user = User.create(loginAndReturnUGI(conf, userStr)); + } else { + user = User.createUserForTesting(conf, userStr, new String[0]); + } + LOG.info("Granting permission for the user " + user.getShortName()); + AccessControlProtos.Permission.Action[] actions = { AccessControlProtos.Permission.Action.READ }; + try { + AccessControlClient.grant(conf, tableName, user.getShortName(), null, null, actions); + } catch (Throwable e) { + LOG.fatal("Error in granting permission for the user " + user.getShortName(), e); + return EXIT_FAILURE; + } + } + } + if (isWrite) { if (userOwner != null) { writerThreads = new MultiThreadedWriterWithACL(dataGen, conf, tableName, userOwner);