1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase;
19
20 import java.util.ArrayList;
21 import java.util.Arrays;
22 import java.util.List;
23
24 import org.apache.hadoop.conf.Configuration;
25 import org.apache.hadoop.hbase.io.hfile.HFile;
26 import org.apache.hadoop.hbase.security.access.AccessController;
27 import org.apache.hadoop.hbase.util.LoadTestTool;
28 import org.apache.hadoop.hbase.util.test.LoadTestDataGeneratorWithACL;
29 import org.apache.hadoop.util.ToolRunner;
30 import org.junit.experimental.categories.Category;
31
32
33
34
35
36
37
38
39 @Category(IntegrationTests.class)
40 public class IntegrationTestIngestWithACL extends IntegrationTestIngest {
41
42 private static final char COLON = ':';
43 public static final char HYPHEN = '-';
44 private static final char COMMA = ',';
45 private static final int SPECIAL_PERM_CELL_INSERTION_FACTOR = 100;
46 public static final String[] userNames = { "user1", "user2", "user3", "user4" };
47
48 @Override
49 public void setUpCluster() throws Exception {
50 util = getTestingUtil(null);
51 Configuration conf = util.getConfiguration();
52 conf.setInt(HFile.FORMAT_VERSION_KEY, 3);
53 conf.set("hbase.coprocessor.master.classes", AccessController.class.getName());
54 conf.set("hbase.coprocessor.region.classes", AccessController.class.getName());
55
56 super.setUpCluster();
57 }
58
59 @Override
60 protected String[] getArgsForLoadTestTool(String mode, String modeSpecificArg, long startKey,
61 long numKeys) {
62 String[] args = super.getArgsForLoadTestTool(mode, modeSpecificArg, startKey, numKeys);
63 List<String> tmp = new ArrayList<String>(Arrays.asList(args));
64 tmp.add(HYPHEN + LoadTestTool.OPT_GENERATOR);
65 StringBuilder sb = new StringBuilder(LoadTestDataGeneratorWithACL.class.getName());
66 sb.append(COLON);
67 sb.append(asCommaSeperatedString(userNames));
68 sb.append(COLON);
69 sb.append(Integer.toString(SPECIAL_PERM_CELL_INSERTION_FACTOR));
70 tmp.add(sb.toString());
71 return tmp.toArray(new String[tmp.size()]);
72 }
73
74 public static void main(String[] args) throws Exception {
75 Configuration conf = HBaseConfiguration.create();
76 IntegrationTestingUtility.setUseDistributedCluster(conf);
77 int ret = ToolRunner.run(conf, new IntegrationTestIngestWithACL(), args);
78 System.exit(ret);
79 }
80
81 private static String asCommaSeperatedString(String[] list) {
82 StringBuilder sb = new StringBuilder();
83 for (String item : list) {
84 sb.append(item);
85 sb.append(COMMA);
86 }
87 if (sb.length() > 0) {
88
89 sb.deleteCharAt(sb.length() - 1);
90 }
91 return sb.toString();
92 }
93 }