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