1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.hadoop.hbase.master.handler;
21
22 import java.io.IOException;
23 import java.util.List;
24
25 import org.apache.hadoop.hbase.HRegionInfo;
26 import org.apache.hadoop.hbase.HTableDescriptor;
27 import org.apache.hadoop.hbase.Server;
28 import org.apache.hadoop.hbase.master.MasterServices;
29 import org.apache.hadoop.hbase.master.MasterFileSystem;
30 import org.apache.hadoop.hbase.util.Bytes;
31
32
33
34
35 public class TableDeleteFamilyHandler extends TableEventHandler {
36
37 private final byte [] familyName;
38
39 public TableDeleteFamilyHandler(byte[] tableName, byte [] familyName,
40 Server server, final MasterServices masterServices) throws IOException {
41 super(EventType.C_M_ADD_FAMILY, tableName, server, masterServices);
42 HTableDescriptor htd = getTableDescriptor();
43 this.familyName = hasColumnFamily(htd, familyName);
44 }
45
46 @Override
47 protected void handleTableOperation(List<HRegionInfo> hris) throws IOException {
48 MasterFileSystem mfs = this.masterServices.getMasterFileSystem();
49
50 mfs.deleteColumn(tableName, familyName);
51
52 for (HRegionInfo hri : hris) {
53
54 mfs.deleteFamilyFromFS(hri, familyName);
55 }
56 }
57
58 @Override
59 public String toString() {
60 String name = "UnknownServerName";
61 if(server != null && server.getServerName() != null) {
62 name = server.getServerName().toString();
63 }
64 String family = "UnknownFamily";
65 if(familyName != null) {
66 family = Bytes.toString(familyName);
67 }
68 return getClass().getSimpleName() + "-" + name + "-" + getSeqid() + "-" + tableNameStr + "-" + family;
69 }
70 }