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.io.IOException;
21 import java.net.InetSocketAddress;
22 import java.util.HashMap;
23 import java.util.List;
24 import java.util.Map;
25 import java.util.concurrent.ConcurrentSkipListMap;
26
27 import com.google.protobuf.Message;
28 import com.google.protobuf.Service;
29
30 import org.apache.hadoop.conf.Configuration;
31 import org.apache.hadoop.fs.FileSystem;
32 import org.apache.hadoop.hbase.catalog.CatalogTracker;
33 import org.apache.hadoop.hbase.executor.ExecutorService;
34 import org.apache.hadoop.hbase.fs.HFileSystem;
35 import org.apache.hadoop.hbase.ipc.RpcServerInterface;
36 import org.apache.hadoop.hbase.master.TableLockManager;
37 import org.apache.hadoop.hbase.master.TableLockManager.NullTableLockManager;
38 import org.apache.hadoop.hbase.protobuf.generated.RPCProtos;
39 import org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;
40 import org.apache.hadoop.hbase.regionserver.CompactionRequestor;
41 import org.apache.hadoop.hbase.regionserver.FlushRequester;
42 import org.apache.hadoop.hbase.regionserver.HRegion;
43 import org.apache.hadoop.hbase.regionserver.HeapMemoryManager;
44 import org.apache.hadoop.hbase.regionserver.Leases;
45 import org.apache.hadoop.hbase.regionserver.RegionServerAccounting;
46 import org.apache.hadoop.hbase.regionserver.RegionServerServices;
47 import org.apache.hadoop.hbase.regionserver.ServerNonceManager;
48 import org.apache.hadoop.hbase.regionserver.wal.HLog;
49 import org.apache.hadoop.hbase.util.Bytes;
50 import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
51 import org.apache.zookeeper.KeeperException;
52
53
54
55
56 class MockRegionServerServices implements RegionServerServices {
57 private final Map<String, HRegion> regions = new HashMap<String, HRegion>();
58 private boolean stopping = false;
59 private final ConcurrentSkipListMap<byte[], Boolean> rit =
60 new ConcurrentSkipListMap<byte[], Boolean>(Bytes.BYTES_COMPARATOR);
61 private HFileSystem hfs = null;
62 private ZooKeeperWatcher zkw = null;
63 private ServerName serverName = null;
64 private RpcServerInterface rpcServer = null;
65 private volatile boolean abortRequested;
66
67 MockRegionServerServices(ZooKeeperWatcher zkw) {
68 this.zkw = zkw;
69 }
70
71 MockRegionServerServices(ZooKeeperWatcher zkw, ServerName serverName) {
72 this.zkw = zkw;
73 this.serverName = serverName;
74 }
75
76 MockRegionServerServices(){
77 this(null);
78 }
79
80 @Override
81 public boolean removeFromOnlineRegions(HRegion r, ServerName destination) {
82 return this.regions.remove(r.getRegionInfo().getEncodedName()) != null;
83 }
84
85 @Override
86 public HRegion getFromOnlineRegions(String encodedRegionName) {
87 return this.regions.get(encodedRegionName);
88 }
89
90 public List<HRegion> getOnlineRegions(TableName tableName) throws IOException {
91 return null;
92 }
93
94 @Override
95 public void addToOnlineRegions(HRegion r) {
96 this.regions.put(r.getRegionInfo().getEncodedName(), r);
97 }
98
99 @Override
100 public void postOpenDeployTasks(HRegion r, CatalogTracker ct)
101 throws KeeperException, IOException {
102 addToOnlineRegions(r);
103 }
104
105 @Override
106 public boolean isStopping() {
107 return this.stopping;
108 }
109
110 @Override
111 public void postOpenDeployTasks(PostOpenDeployContext context, CatalogTracker ct)
112 throws KeeperException, IOException {
113 }
114
115 @Override
116 public RpcServerInterface getRpcServer() {
117 return rpcServer;
118 }
119
120 public void setRpcServer(RpcServerInterface rpc) {
121 this.rpcServer = rpc;
122 }
123
124 @Override
125 public ConcurrentSkipListMap<byte[], Boolean> getRegionsInTransitionInRS() {
126 return rit;
127 }
128
129 @Override
130 public FlushRequester getFlushRequester() {
131 return null;
132 }
133
134 @Override
135 public CompactionRequestor getCompactionRequester() {
136 return null;
137 }
138
139 @Override
140 public CatalogTracker getCatalogTracker() {
141 return null;
142 }
143
144 @Override
145 public ZooKeeperWatcher getZooKeeper() {
146 return zkw;
147 }
148
149 public RegionServerAccounting getRegionServerAccounting() {
150 return null;
151 }
152
153 @Override
154 public TableLockManager getTableLockManager() {
155 return new NullTableLockManager();
156 }
157
158 @Override
159 public ServerName getServerName() {
160 return this.serverName;
161 }
162
163 @Override
164 public Configuration getConfiguration() {
165 return zkw == null ? null : zkw.getConfiguration();
166 }
167
168 @Override
169 public void abort(String why, Throwable e) {
170 this.abortRequested = true;
171 stop(why);
172 }
173
174 @Override
175 public void stop(String why) {
176
177 }
178
179 @Override
180 public boolean isStopped() {
181 return false;
182 }
183
184 @Override
185 public boolean isAborted() {
186 return this.abortRequested;
187 }
188
189 @Override
190 public HFileSystem getFileSystem() {
191 return this.hfs;
192 }
193
194 public void setFileSystem(FileSystem hfs) {
195 this.hfs = (HFileSystem)hfs;
196 }
197
198 @Override
199 public Leases getLeases() {
200 return null;
201 }
202
203 @Override
204 public HLog getWAL(HRegionInfo regionInfo) throws IOException {
205 return null;
206 }
207
208 @Override
209 public ExecutorService getExecutorService() {
210 return null;
211 }
212
213 @Override
214 public void updateRegionFavoredNodesMapping(String encodedRegionName,
215 List<org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName> favoredNodes) {
216 }
217
218 @Override
219 public InetSocketAddress[] getFavoredNodesForRegion(String encodedRegionName) {
220 return null;
221 }
222
223 @Override
224 public Map<String, HRegion> getRecoveringRegions() {
225
226 return null;
227 }
228
229 @Override
230 public int getPriority(RPCProtos.RequestHeader header, Message param) {
231 return 0;
232 }
233
234 @Override
235 public ServerNonceManager getNonceManager() {
236
237 return null;
238 }
239
240 @Override
241 public boolean reportRegionStateTransition(TransitionCode code, long openSeqNum,
242 HRegionInfo... hris) {
243 return false;
244 }
245
246 @Override
247 public boolean reportRegionStateTransition(TransitionCode code,
248 HRegionInfo... hris) {
249 return false;
250 }
251
252 @Override
253 public boolean reportRegionStateTransition(RegionStateTransitionContext context) {
254 return false;
255 }
256
257 @Override
258 public boolean registerService(Service service) {
259
260 return false;
261 }
262
263 @Override
264 public HeapMemoryManager getHeapMemoryManager() {
265 return null;
266 }
267
268 @Override
269 public double getCompactionPressure() {
270 return 0;
271 }
272 }