1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.rest.model;
19
20 import java.util.Iterator;
21
22 import org.apache.hadoop.hbase.testclassification.SmallTests;
23 import org.apache.hadoop.hbase.TableName;
24 import org.apache.hadoop.hbase.util.Bytes;
25
26 import org.junit.experimental.categories.Category;
27
28 @Category(SmallTests.class)
29 public class TestStorageClusterStatusModel extends TestModelBase<StorageClusterStatusModel> {
30 public TestStorageClusterStatusModel() throws Exception {
31 super(StorageClusterStatusModel.class);
32
33 AS_XML =
34 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" +
35 "<ClusterStatus averageLoad=\"1.0\" regions=\"2\" requests=\"0\">" +
36 "<DeadNodes/><LiveNodes>" +
37 "<Node heapSizeMB=\"128\" maxHeapSizeMB=\"1024\" name=\"test1\" requests=\"0\" startCode=\"1245219839331\">" +
38 "<Region currentCompactedKVs=\"1\" memstoreSizeMB=\"0\" name=\"aGJhc2U6cm9vdCwsMA==\" readRequestsCount=\"1\" " +
39 "rootIndexSizeKB=\"1\" storefileIndexSizeMB=\"0\" storefileSizeMB=\"0\" storefiles=\"1\" stores=\"1\" " +
40 "totalCompactingKVs=\"1\" totalStaticBloomSizeKB=\"1\" totalStaticIndexSizeKB=\"1\" writeRequestsCount=\"2\"/>" +
41 "</Node>" +
42 "<Node heapSizeMB=\"512\" maxHeapSizeMB=\"1024\" name=\"test2\" requests=\"0\" startCode=\"1245239331198\">" +
43 "<Region currentCompactedKVs=\"1\" memstoreSizeMB=\"0\" name=\"aGJhc2U6bWV0YSwsMTI0NjAwMDA0MzcyNA==\" " +
44 "readRequestsCount=\"1\" rootIndexSizeKB=\"1\" storefileIndexSizeMB=\"0\" storefileSizeMB=\"0\" " +
45 "storefiles=\"1\" stores=\"1\" totalCompactingKVs=\"1\" totalStaticBloomSizeKB=\"1\" " +
46 "totalStaticIndexSizeKB=\"1\" writeRequestsCount=\"2\"/></Node></LiveNodes></ClusterStatus>";
47
48 AS_PB =
49 "Cj8KBXRlc3QxEOO6i+eeJBgAIIABKIAIMicKDWhiYXNlOnJvb3QsLDAQARgBIAAoADAAOAFAAkgB" +
50 "UAFYAWABaAEKSwoFdGVzdDIQ/pKx8J4kGAAggAQogAgyMwoZaGJhc2U6bWV0YSwsMTI0NjAwMDA0" +
51 "MzcyNBABGAEgACgAMAA4AUACSAFQAVgBYAFoARgCIAApAAAAAAAA8D8=";
52
53
54
55
56
57 AS_JSON =
58 "{\"regions\":2,\"requests\":0,\"averageLoad\":1.0,\"LiveNodes\":[{\"name\":\"test1\"," +
59 "\"Region\":[{\"name\":\"aGJhc2U6cm9vdCwsMA==\",\"stores\":1,\"storefiles\":1," +
60 "\"storefileSizeMB\":0,\"memstoreSizeMB\":0,\"storefileIndexSizeMB\":0," +
61 "\"readRequestsCount\":1,\"writeRequestsCount\":2,\"rootIndexSizeKB\":1," +
62 "\"totalStaticIndexSizeKB\":1,\"totalStaticBloomSizeKB\":1,\"totalCompactingKVs\":1," +
63 "\"currentCompactedKVs\":1}],\"requests\":0,\"startCode\":1245219839331," +
64 "\"heapSizeMB\":128,\"maxHeapSizeMB\":1024},{\"name\":\"test2\"," +
65 "\"Region\":[{\"name\":\"aGJhc2U6bWV0YSwsMTI0NjAwMDA0MzcyNA==\",\"stores\":1," +
66 "\"storefiles\":1,\"storefileSizeMB\":0,\"memstoreSizeMB\":0,\"storefileIndexSizeMB\":0," +
67 "\"readRequestsCount\":1,\"writeRequestsCount\":2,\"rootIndexSizeKB\":1," +
68 "\"totalStaticIndexSizeKB\":1,\"totalStaticBloomSizeKB\":1,\"totalCompactingKVs\":1," +
69 "\"currentCompactedKVs\":1}],\"requests\":0,\"startCode\":1245239331198," +
70 "\"heapSizeMB\":512,\"maxHeapSizeMB\":1024}],\"DeadNodes\":[]}";
71 }
72
73 @Override
74 protected StorageClusterStatusModel buildTestModel() {
75 StorageClusterStatusModel model = new StorageClusterStatusModel();
76 model.setRegions(2);
77 model.setRequests(0);
78 model.setAverageLoad(1.0);
79 model.addLiveNode("test1", 1245219839331L, 128, 1024)
80 .addRegion(Bytes.toBytes("hbase:root,,0"), 1, 1, 0, 0, 0, 1, 2, 1, 1, 1, 1, 1);
81 model.addLiveNode("test2", 1245239331198L, 512, 1024)
82 .addRegion(Bytes.toBytes(TableName.META_TABLE_NAME+",,1246000043724"),1, 1, 0, 0, 0,
83 1, 2, 1, 1, 1, 1, 1);
84 return model;
85 }
86
87 @Override
88 protected void checkModel(StorageClusterStatusModel model) {
89 assertEquals(2, model.getRegions());
90 assertEquals(0, model.getRequests());
91 assertEquals(1.0, model.getAverageLoad(), 0.0);
92 Iterator<StorageClusterStatusModel.Node> nodes =
93 model.getLiveNodes().iterator();
94 StorageClusterStatusModel.Node node = nodes.next();
95 assertEquals("test1", node.getName());
96 assertEquals(1245219839331L, node.getStartCode());
97 assertEquals(128, node.getHeapSizeMB());
98 assertEquals(1024, node.getMaxHeapSizeMB());
99 Iterator<StorageClusterStatusModel.Node.Region> regions =
100 node.getRegions().iterator();
101 StorageClusterStatusModel.Node.Region region = regions.next();
102 assertTrue(Bytes.toString(region.getName()).equals(
103 "hbase:root,,0"));
104 assertEquals(1, region.getStores());
105 assertEquals(1, region.getStorefiles());
106 assertEquals(0, region.getStorefileSizeMB());
107 assertEquals(0, region.getMemstoreSizeMB());
108 assertEquals(0, region.getStorefileIndexSizeMB());
109 assertEquals(1, region.getReadRequestsCount());
110 assertEquals(2, region.getWriteRequestsCount());
111 assertEquals(1, region.getRootIndexSizeKB());
112 assertEquals(1, region.getTotalStaticIndexSizeKB());
113 assertEquals(1, region.getTotalStaticBloomSizeKB());
114 assertEquals(1, region.getTotalCompactingKVs());
115 assertEquals(1, region.getCurrentCompactedKVs());
116 assertFalse(regions.hasNext());
117 node = nodes.next();
118 assertEquals("test2", node.getName());
119 assertEquals(1245239331198L, node.getStartCode());
120 assertEquals(512, node.getHeapSizeMB());
121 assertEquals(1024, node.getMaxHeapSizeMB());
122 regions = node.getRegions().iterator();
123 region = regions.next();
124 assertEquals(Bytes.toString(region.getName()),
125 TableName.META_TABLE_NAME+",,1246000043724");
126 assertEquals(1, region.getStores());
127 assertEquals(1, region.getStorefiles());
128 assertEquals(0, region.getStorefileSizeMB());
129 assertEquals(0, region.getMemstoreSizeMB());
130 assertEquals(0, region.getStorefileIndexSizeMB());
131 assertEquals(1, region.getReadRequestsCount());
132 assertEquals(2, region.getWriteRequestsCount());
133 assertEquals(1, region.getRootIndexSizeKB());
134 assertEquals(1, region.getTotalStaticIndexSizeKB());
135 assertEquals(1, region.getTotalStaticBloomSizeKB());
136 assertEquals(1, region.getTotalCompactingKVs());
137 assertEquals(1, region.getCurrentCompactedKVs());
138
139 assertFalse(regions.hasNext());
140 assertFalse(nodes.hasNext());
141 }
142 }