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.Set;
26 import java.util.concurrent.ConcurrentSkipListMap;
27 import java.util.concurrent.atomic.AtomicBoolean;
28
29 import org.apache.commons.logging.Log;
30 import org.apache.commons.logging.LogFactory;
31 import org.apache.hadoop.conf.Configuration;
32 import org.apache.hadoop.fs.FileSystem;
33 import org.apache.hadoop.hbase.client.ClusterConnection;
34 import org.apache.hadoop.hbase.executor.ExecutorService;
35 import org.apache.hadoop.hbase.fs.HFileSystem;
36 import org.apache.hadoop.hbase.ipc.RpcServerInterface;
37 import org.apache.hadoop.hbase.master.TableLockManager;
38 import org.apache.hadoop.hbase.master.TableLockManager.NullTableLockManager;
39 import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos;
40 import org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;
41 import org.apache.hadoop.hbase.quotas.RegionServerRpcQuotaManager;
42 import org.apache.hadoop.hbase.quotas.RegionServerSpaceQuotaManager;
43 import org.apache.hadoop.hbase.regionserver.CompactionRequestor;
44 import org.apache.hadoop.hbase.regionserver.FlushRequester;
45 import org.apache.hadoop.hbase.regionserver.HeapMemoryManager;
46 import org.apache.hadoop.hbase.regionserver.Leases;
47 import org.apache.hadoop.hbase.regionserver.MetricsRegionServer;
48 import org.apache.hadoop.hbase.regionserver.Region;
49 import org.apache.hadoop.hbase.regionserver.RegionServerAccounting;
50 import org.apache.hadoop.hbase.regionserver.RegionServerServices;
51 import org.apache.hadoop.hbase.regionserver.ServerNonceManager;
52 import org.apache.hadoop.hbase.util.Bytes;
53 import org.apache.hadoop.hbase.wal.WAL;
54 import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
55 import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
56 import org.apache.zookeeper.KeeperException;
57
58 import com.google.protobuf.Service;
59
60
61
62
63 public class MockRegionServerServices implements RegionServerServices {
64 protected static final Log LOG = LogFactory.getLog(MockRegionServerServices.class);
65 private final Map<String, Region> regions = new HashMap<String, Region>();
66 private final ConcurrentSkipListMap<byte[], Boolean> rit =
67 new ConcurrentSkipListMap<byte[], Boolean>(Bytes.BYTES_COMPARATOR);
68 private HFileSystem hfs = null;
69 private final Configuration conf;
70 private ZooKeeperWatcher zkw = null;
71 private ServerName serverName = null;
72 private RpcServerInterface rpcServer = null;
73 private volatile boolean abortRequested;
74 private volatile boolean stopping = false;
75 private final AtomicBoolean running = new AtomicBoolean(true);
76
77 MockRegionServerServices(ZooKeeperWatcher zkw) {
78 this(zkw, null);
79 }
80
81 MockRegionServerServices(ZooKeeperWatcher zkw, ServerName serverName) {
82 this.zkw = zkw;
83 this.serverName = serverName;
84 this.conf = (zkw == null ? new Configuration() : zkw.getConfiguration());
85 }
86
87 MockRegionServerServices(){
88 this(null, null);
89 }
90
91 public MockRegionServerServices(Configuration conf) {
92 this.conf = conf;
93 }
94
95 @Override
96 public boolean removeFromOnlineRegions(Region r, ServerName destination) {
97 return this.regions.remove(r.getRegionInfo().getEncodedName()) != null;
98 }
99
100 @Override
101 public Region getFromOnlineRegions(String encodedRegionName) {
102 return this.regions.get(encodedRegionName);
103 }
104
105 public List<Region> getOnlineRegions(TableName tableName) throws IOException {
106 return null;
107 }
108
109 @Override
110 public Set<TableName> getOnlineTables() {
111 return null;
112 }
113
114 @Override
115 public void addToOnlineRegions(Region r) {
116 this.regions.put(r.getRegionInfo().getEncodedName(), r);
117 }
118
119 @Override
120 public void postOpenDeployTasks(Region r) throws KeeperException, IOException {
121 addToOnlineRegions(r);
122 }
123
124 @Override
125 public void postOpenDeployTasks(PostOpenDeployContext context) throws KeeperException,
126 IOException {
127 addToOnlineRegions(context.getRegion());
128 }
129
130 @Override
131 public boolean isStopping() {
132 return this.stopping;
133 }
134
135 @Override
136 public RpcServerInterface getRpcServer() {
137 return rpcServer;
138 }
139
140 public void setRpcServer(RpcServerInterface rpc) {
141 this.rpcServer = rpc;
142 }
143
144 @Override
145 public ConcurrentSkipListMap<byte[], Boolean> getRegionsInTransitionInRS() {
146 return rit;
147 }
148
149 @Override
150 public FlushRequester getFlushRequester() {
151 return null;
152 }
153
154 @Override
155 public CompactionRequestor getCompactionRequester() {
156 return null;
157 }
158
159 @Override
160 public ClusterConnection getConnection() {
161 return null;
162 }
163
164 @Override
165 public MetaTableLocator getMetaTableLocator() {
166 return null;
167 }
168
169 @Override
170 public ZooKeeperWatcher getZooKeeper() {
171 return zkw;
172 }
173
174 @Override
175 public CoordinatedStateManager getCoordinatedStateManager() {
176 return null;
177 }
178
179 public RegionServerAccounting getRegionServerAccounting() {
180 return null;
181 }
182
183 @Override
184 public TableLockManager getTableLockManager() {
185 return new NullTableLockManager();
186 }
187
188 @Override
189 public RegionServerRpcQuotaManager getRegionServerRpcQuotaManager() {
190 return null;
191 }
192
193 @Override
194 public ServerName getServerName() {
195 return this.serverName;
196 }
197
198 @Override
199 public Configuration getConfiguration() {
200 return conf;
201 }
202
203 @Override
204 public void abort(String why, Throwable e) {
205 this.abortRequested = true;
206 stop(why);
207 }
208
209 @Override
210 public void stop(String why) {
211 this.stopping = true;
212 if (running.compareAndSet(true, false)) {
213 LOG.info("Shutting down due to request '" + why + "'");
214 }
215 }
216
217 @Override
218 public boolean isStopped() {
219 return !(running.get());
220 }
221
222 @Override
223 public boolean isAborted() {
224 return this.abortRequested;
225 }
226
227 @Override
228 public HFileSystem getFileSystem() {
229 return this.hfs;
230 }
231
232 public void setFileSystem(FileSystem hfs) {
233 this.hfs = (HFileSystem)hfs;
234 }
235
236 @Override
237 public Leases getLeases() {
238 return null;
239 }
240
241 @Override
242 public WAL getWAL(HRegionInfo regionInfo) throws IOException {
243 return null;
244 }
245
246 @Override
247 public ExecutorService getExecutorService() {
248 return null;
249 }
250
251 @Override
252 public ChoreService getChoreService() {
253 return null;
254 }
255
256 @Override
257 public void updateRegionFavoredNodesMapping(String encodedRegionName,
258 List<org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName> favoredNodes) {
259 }
260
261 @Override
262 public InetSocketAddress[] getFavoredNodesForRegion(String encodedRegionName) {
263 return null;
264 }
265
266 @Override
267 public Map<String, Region> getRecoveringRegions() {
268
269 return null;
270 }
271
272 @Override
273 public ServerNonceManager getNonceManager() {
274
275 return null;
276 }
277
278 @Override
279 public boolean reportRegionStateTransition(TransitionCode code, long openSeqNum,
280 HRegionInfo... hris) {
281 return false;
282 }
283
284 @Override
285 public boolean reportRegionStateTransition(TransitionCode code,
286 HRegionInfo... hris) {
287 return false;
288 }
289
290 @Override
291 public boolean reportRegionStateTransition(RegionStateTransitionContext context) {
292 return false;
293 }
294
295 @Override
296 public boolean registerService(Service service) {
297
298 return false;
299 }
300
301 @Override
302 public HeapMemoryManager getHeapMemoryManager() {
303 return null;
304 }
305
306 @Override
307 public double getCompactionPressure() {
308 return 0;
309 }
310
311 @Override
312 public MetricsRegionServer getMetrics() {
313 return null;
314 }
315
316 @Override
317 public RegionServerSpaceQuotaManager getRegionServerSpaceQuotaManager() {
318 return null;
319 }
320 }