1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.chaos.actions;
20
21 import java.util.Random;
22 import org.apache.hadoop.hbase.HBaseTestingUtility;
23 import org.apache.hadoop.hbase.client.Admin;
24 import org.apache.hadoop.hbase.client.HBaseAdmin;
25 import org.apache.hadoop.hbase.TableName;
26 import org.slf4j.Logger;
27 import org.slf4j.LoggerFactory;
28
29
30
31
32 public class TruncateTableAction extends Action {
33 private static final Logger LOG = LoggerFactory.getLogger(TruncateTableAction.class);
34 private final TableName tableName;
35 private final Random random;
36
37 public TruncateTableAction(String tableName) {
38 this.tableName = TableName.valueOf(tableName);
39 this.random = new Random();
40 }
41
42 @Override protected Logger getLogger() {
43 return LOG;
44 }
45
46 @Override
47 public void perform() throws Exception {
48 HBaseTestingUtility util = context.getHBaseIntegrationTestingUtility();
49 Admin admin = util.getHBaseAdmin();
50
51
52 if (context.isStopping()) {
53 return;
54 }
55
56 boolean preserveSplits = random.nextBoolean();
57 getLogger().info("Performing action: Truncate table {} preserve splits {}",
58 tableName.getNameAsString(), preserveSplits);
59 admin.truncateTable(tableName, preserveSplits);
60 }
61 }