diff --git hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java index dd32f3b..c82e6d9 100644 --- hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java +++ hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java @@ -42,6 +42,7 @@ import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.PerformanceEvaluation; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.HBaseAdmin; +import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.io.compress.Compression; import org.apache.hadoop.hbase.io.crypto.Cipher; import org.apache.hadoop.hbase.io.crypto.Encryption; @@ -516,17 +517,49 @@ public class LoadTestTool extends AbstractHBaseTool { if (userOwner != null) { LOG.info("Granting permission for the user " + userOwner.getShortName()); - AccessControlProtos.Permission.Action[] actions = { + HTable table = new HTable(conf, tableName); + try { + AccessControlProtos.Permission.Action[] actions = { 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, + try { + AccessControlClient.grant(conf, table.getName(), userOwner.getShortName(), null, null, actions); - } catch (Throwable e) { - LOG.fatal("Error in granting permission for the user " + userOwner.getShortName(), e); - return EXIT_FAILURE; + } catch (Throwable e) { + LOG.fatal("Error in granting permission for the user " + userOwner.getShortName(), e); + return EXIT_FAILURE; + } + } finally { + table.close(); + } + } + + if (userNames != null) { + // This will be comma separated list of expressions. + String users[] = userNames.split(","); + User user = null; + HTable table = new HTable(conf, tableName); + try { + 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, table.getName(), user.getShortName(), null, + null, actions); + } catch (Throwable e) { + LOG.fatal("Error in granting permission for the user " + user.getShortName(), e); + return EXIT_FAILURE; + } + } + } finally { + table.close(); } }