001/*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements.  See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership.  The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License.  You may obtain a copy of the License at
009 *
010 *     http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018package org.apache.hadoop.hbase.master;
019
020import static org.mockito.Mockito.mock;
021
022import com.google.protobuf.Service;
023import java.io.IOException;
024import java.util.List;
025import org.apache.hadoop.conf.Configuration;
026import org.apache.hadoop.fs.FileSystem;
027import org.apache.hadoop.hbase.ChoreService;
028import org.apache.hadoop.hbase.CoordinatedStateManager;
029import org.apache.hadoop.hbase.ServerName;
030import org.apache.hadoop.hbase.TableDescriptors;
031import org.apache.hadoop.hbase.TableName;
032import org.apache.hadoop.hbase.client.ClusterConnection;
033import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
034import org.apache.hadoop.hbase.client.Connection;
035import org.apache.hadoop.hbase.client.MasterSwitchType;
036import org.apache.hadoop.hbase.client.RegionInfo;
037import org.apache.hadoop.hbase.client.TableDescriptor;
038import org.apache.hadoop.hbase.executor.ExecutorService;
039import org.apache.hadoop.hbase.favored.FavoredNodesManager;
040import org.apache.hadoop.hbase.master.assignment.AssignmentManager;
041import org.apache.hadoop.hbase.master.locking.LockManager;
042import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;
043import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;
044import org.apache.hadoop.hbase.master.replication.ReplicationPeerManager;
045import org.apache.hadoop.hbase.master.snapshot.SnapshotManager;
046import org.apache.hadoop.hbase.procedure.MasterProcedureManagerHost;
047import org.apache.hadoop.hbase.procedure2.LockedResource;
048import org.apache.hadoop.hbase.procedure2.Procedure;
049import org.apache.hadoop.hbase.procedure2.ProcedureEvent;
050import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;
051import org.apache.hadoop.hbase.quotas.MasterQuotaManager;
052import org.apache.hadoop.hbase.replication.ReplicationException;
053import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;
054import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;
055import org.apache.hadoop.hbase.zookeeper.ZKWatcher;
056
057public class MockNoopMasterServices implements MasterServices {
058
059  private final Configuration conf;
060  private final MetricsMaster metricsMaster;
061
062  public MockNoopMasterServices() {
063    this(null);
064  }
065
066  public MockNoopMasterServices(final Configuration conf) {
067    this.conf = conf;
068    this.metricsMaster = new MetricsMaster(new MetricsMasterWrapperImpl(null));
069  }
070
071  @Override
072  public void checkTableModifiable(TableName tableName) throws IOException {
073    //no-op
074  }
075
076  @Override
077  public long createTable(
078      final TableDescriptor desc,
079      final byte[][] splitKeys,
080      final long nonceGroup,
081      final long nonce) throws IOException {
082    // no-op
083    return -1;
084  }
085
086  @Override
087  public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException {
088    return -1;
089  }
090
091  @Override
092  public AssignmentManager getAssignmentManager() {
093    return null;
094  }
095
096  @Override
097  public ExecutorService getExecutorService() {
098    return null;
099  }
100
101  @Override
102  public ChoreService getChoreService() {
103    return null;
104  }
105
106  @Override
107  public RegionNormalizer getRegionNormalizer() {
108    return null;
109  }
110
111  @Override
112  public CatalogJanitor getCatalogJanitor() {
113    return null;
114  }
115
116  @Override
117  public MasterFileSystem getMasterFileSystem() {
118    return null;
119  }
120
121  @Override
122  public MasterWalManager getMasterWalManager() {
123    return null;
124  }
125
126  @Override
127  public MasterCoprocessorHost getMasterCoprocessorHost() {
128    return null;
129  }
130
131  @Override
132  public MasterQuotaManager getMasterQuotaManager() {
133    return null;
134  }
135
136  @Override
137  public ProcedureExecutor<MasterProcedureEnv> getMasterProcedureExecutor() {
138    return null;
139  }
140
141  @Override
142  public MetricsMaster getMasterMetrics() {
143    return metricsMaster;
144  }
145
146  @Override
147  public ServerManager getServerManager() {
148    return null;
149  }
150
151  @Override
152  public ZKWatcher getZooKeeper() {
153    return null;
154  }
155
156  @Override
157  public CoordinatedStateManager getCoordinatedStateManager() {
158    return null;
159  }
160
161  @Override
162  public ClusterConnection getConnection() {
163    return null;
164  }
165
166  @Override
167  public Configuration getConfiguration() {
168    return conf;
169  }
170
171  @Override
172  public ServerName getServerName() {
173    return ServerName.valueOf("mock.master", 12345, 1);
174  }
175
176  @Override
177  public void abort(String why, Throwable e) {
178    //no-op
179  }
180
181  @Override
182  public boolean isAborted() {
183    return false;
184  }
185
186  private boolean stopped = false;
187
188  @Override
189  public void stop(String why) {
190    stopped = true;
191  }
192
193  @Override
194  public boolean isStopping() {
195    return stopped;
196  }
197
198  @Override
199  public boolean isStopped() {
200    return stopped;
201  }
202
203  @Override
204  public TableDescriptors getTableDescriptors() {
205    return null;
206  }
207
208  @Override
209  public boolean registerService(Service instance) {
210    return false;
211  }
212
213  @Override
214  public boolean abortProcedure(final long procId, final boolean mayInterruptIfRunning)
215      throws IOException {
216    return false;  //To change body of implemented methods use File | Settings | File Templates.
217  }
218
219  @Override
220  public List<Procedure<?>> getProcedures() throws IOException {
221    return null;  //To change body of implemented methods use File | Settings | File Templates.
222  }
223
224  @Override
225  public List<LockedResource> getLocks() throws IOException {
226    return null;
227  }
228
229  @Override
230  public List<TableDescriptor> listTableDescriptorsByNamespace(String name) throws IOException {
231    return null;  //To change body of implemented methods use File | Settings | File Templates.
232  }
233
234  @Override
235  public List<TableName> listTableNamesByNamespace(String name) throws IOException {
236    return null;
237  }
238
239  @Override
240  public long deleteTable(
241      final TableName tableName,
242      final long nonceGroup,
243      final long nonce) throws IOException {
244    return -1;
245  }
246
247  @Override
248  public long truncateTable(
249      final TableName tableName,
250      final boolean preserveSplits,
251      final long nonceGroup,
252      final long nonce) throws IOException {
253    return -1;
254  }
255
256
257  @Override
258  public long modifyTable(
259      final TableName tableName,
260      final TableDescriptor descriptor,
261      final long nonceGroup,
262      final long nonce) throws IOException {
263    return -1;
264  }
265
266  @Override
267  public long enableTable(
268      final TableName tableName,
269      final long nonceGroup,
270      final long nonce) throws IOException {
271    return -1;
272  }
273
274  @Override
275  public long disableTable(
276      TableName tableName,
277      final long nonceGroup,
278      final long nonce) throws IOException {
279    return -1;
280  }
281
282  @Override
283  public long addColumn(final TableName tableName, final ColumnFamilyDescriptor columnDescriptor,
284      final long nonceGroup, final long nonce) throws IOException {
285    return -1;
286  }
287
288  @Override
289  public long modifyColumn(final TableName tableName, final ColumnFamilyDescriptor descriptor,
290      final long nonceGroup, final long nonce) throws IOException {
291    return -1;
292  }
293
294  @Override
295  public long deleteColumn(final TableName tableName, final byte[] columnName,
296      final long nonceGroup, final long nonce) throws IOException {
297    return -1;
298  }
299
300  @Override
301  public long mergeRegions(
302      final RegionInfo[] regionsToMerge,
303      final boolean forcible,
304      final long nonceGroup,
305      final long nonce) throws IOException {
306    return -1;
307  }
308
309  @Override
310  public long splitRegion(
311      final RegionInfo regionInfo,
312      final byte[] splitRow,
313      final long nonceGroup,
314      final long nonce) throws IOException {
315    return -1;
316  }
317
318  @Override
319  public TableStateManager getTableStateManager() {
320    return mock(TableStateManager.class);
321  }
322
323  @Override
324  public boolean isActiveMaster() {
325    return true;
326  }
327
328  @Override
329  public boolean isInitialized() {
330    return false;
331  }
332
333  @Override
334  public boolean isInMaintenanceMode() {
335    return false;
336  }
337
338  @Override
339  public long getLastMajorCompactionTimestamp(TableName table) throws IOException {
340    return 0;
341  }
342
343  @Override
344  public long getLastMajorCompactionTimestampForRegion(byte[] regionName) throws IOException {
345    return 0;
346  }
347
348  @Override
349  public ClusterSchema getClusterSchema() {
350    return null;
351  }
352
353  @Override
354  public ClusterConnection getClusterConnection() {
355    return null;
356  }
357
358  @Override
359  public LoadBalancer getLoadBalancer() {
360    return null;
361  }
362
363  @Override
364  public FavoredNodesManager getFavoredNodesManager() {
365    return null;
366  }
367
368  @Override
369  public SnapshotManager getSnapshotManager() {
370    return null;
371  }
372
373  @Override
374  public MasterProcedureManagerHost getMasterProcedureManagerHost() {
375    return null;
376  }
377
378  @Override
379  public boolean isSplitOrMergeEnabled(MasterSwitchType switchType) {
380    return false;
381  }
382
383  @Override
384  public long addReplicationPeer(String peerId, ReplicationPeerConfig peerConfig, boolean enabled)
385      throws ReplicationException {
386    return 0;
387  }
388
389  @Override
390  public long removeReplicationPeer(String peerId) throws ReplicationException {
391    return 0;
392  }
393
394  @Override
395  public long enableReplicationPeer(String peerId) throws ReplicationException, IOException {
396    return 0;
397  }
398
399  @Override
400  public long disableReplicationPeer(String peerId) throws ReplicationException, IOException {
401    return 0;
402  }
403
404  @Override
405  public ReplicationPeerConfig getReplicationPeerConfig(String peerId) throws ReplicationException,
406      IOException {
407    return null;
408  }
409
410  @Override
411  public long updateReplicationPeerConfig(String peerId, ReplicationPeerConfig peerConfig)
412      throws ReplicationException, IOException {
413    return 0;
414  }
415
416  @Override
417  public List<ReplicationPeerDescription> listReplicationPeers(String regex)
418      throws ReplicationException, IOException {
419    return null;
420  }
421
422  @Override
423  public LockManager getLockManager() {
424    return null;
425  }
426
427  @Override
428  public String getRegionServerVersion(ServerName sn) {
429    return "0.0.0";
430  }
431
432  @Override
433  public void checkIfShouldMoveSystemRegionAsync() {
434  }
435
436  @Override
437  public String getClientIdAuditPrefix() {
438    return null;
439  }
440
441  @Override
442  public ProcedureEvent<?> getInitializedEvent() {
443    return null;
444  }
445
446  @Override
447  public FileSystem getFileSystem() {
448    return null;
449  }
450
451  @Override
452  public Connection createConnection(Configuration conf) throws IOException {
453    return null;
454  }
455
456  @Override
457  public ReplicationPeerManager getReplicationPeerManager() {
458    return null;
459  }
460
461  @Override
462  public boolean isClusterUp() {
463    return true;
464  }
465
466  @Override
467  public List<RegionPlan> executeRegionPlansWithThrottling(List<RegionPlan> plans) {
468    return null;
469  }
470
471  @Override
472  public void runReplicationBarrierCleaner() {}
473}