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.MetaTableLocator;
056import org.apache.hadoop.hbase.zookeeper.ZKWatcher;
057
058public class MockNoopMasterServices implements MasterServices {
059
060  private final Configuration conf;
061  private final MetricsMaster metricsMaster;
062
063  public MockNoopMasterServices() {
064    this(null);
065  }
066
067  public MockNoopMasterServices(final Configuration conf) {
068    this.conf = conf;
069    this.metricsMaster = new MetricsMaster(new MetricsMasterWrapperImpl(null));
070  }
071
072  @Override
073  public void checkTableModifiable(TableName tableName) throws IOException {
074    //no-op
075  }
076
077  @Override
078  public long createTable(
079      final TableDescriptor desc,
080      final byte[][] splitKeys,
081      final long nonceGroup,
082      final long nonce) throws IOException {
083    // no-op
084    return -1;
085  }
086
087  @Override
088  public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException {
089    return -1;
090  }
091
092  @Override
093  public AssignmentManager getAssignmentManager() {
094    return null;
095  }
096
097  @Override
098  public ExecutorService getExecutorService() {
099    return null;
100  }
101
102  @Override
103  public ChoreService getChoreService() {
104    return null;
105  }
106
107  @Override
108  public RegionNormalizer getRegionNormalizer() {
109    return null;
110  }
111
112  @Override
113  public CatalogJanitor getCatalogJanitor() {
114    return null;
115  }
116
117  @Override
118  public MasterFileSystem getMasterFileSystem() {
119    return null;
120  }
121
122  @Override
123  public MasterWalManager getMasterWalManager() {
124    return null;
125  }
126
127  @Override
128  public MasterCoprocessorHost getMasterCoprocessorHost() {
129    return null;
130  }
131
132  @Override
133  public MasterQuotaManager getMasterQuotaManager() {
134    return null;
135  }
136
137  @Override
138  public ProcedureExecutor<MasterProcedureEnv> getMasterProcedureExecutor() {
139    return null;
140  }
141
142  @Override
143  public MetricsMaster getMasterMetrics() {
144    return metricsMaster;
145  }
146
147  @Override
148  public ServerManager getServerManager() {
149    return null;
150  }
151
152  @Override
153  public ZKWatcher getZooKeeper() {
154    return null;
155  }
156
157  @Override
158  public CoordinatedStateManager getCoordinatedStateManager() {
159    return null;
160  }
161
162  @Override
163  public MetaTableLocator getMetaTableLocator() {
164    return null;
165  }
166
167  @Override
168  public ClusterConnection getConnection() {
169    return null;
170  }
171
172  @Override
173  public Configuration getConfiguration() {
174    return conf;
175  }
176
177  @Override
178  public ServerName getServerName() {
179    return ServerName.valueOf("mock.master", 12345, 1);
180  }
181
182  @Override
183  public void abort(String why, Throwable e) {
184    //no-op
185  }
186
187  @Override
188  public boolean isAborted() {
189    return false;
190  }
191
192  private boolean stopped = false;
193
194  @Override
195  public void stop(String why) {
196    stopped = true;
197  }
198
199  @Override
200  public boolean isStopping() {
201    return stopped;
202  }
203
204  @Override
205  public boolean isStopped() {
206    return stopped;
207  }
208
209  @Override
210  public TableDescriptors getTableDescriptors() {
211    return null;
212  }
213
214  @Override
215  public boolean registerService(Service instance) {
216    return false;
217  }
218
219  @Override
220  public boolean abortProcedure(final long procId, final boolean mayInterruptIfRunning)
221      throws IOException {
222    return false;  //To change body of implemented methods use File | Settings | File Templates.
223  }
224
225  @Override
226  public List<Procedure<?>> getProcedures() throws IOException {
227    return null;  //To change body of implemented methods use File | Settings | File Templates.
228  }
229
230  @Override
231  public List<LockedResource> getLocks() throws IOException {
232    return null;
233  }
234
235  @Override
236  public List<TableDescriptor> listTableDescriptorsByNamespace(String name) throws IOException {
237    return null;  //To change body of implemented methods use File | Settings | File Templates.
238  }
239
240  @Override
241  public List<TableName> listTableNamesByNamespace(String name) throws IOException {
242    return null;
243  }
244
245  @Override
246  public long deleteTable(
247      final TableName tableName,
248      final long nonceGroup,
249      final long nonce) throws IOException {
250    return -1;
251  }
252
253  @Override
254  public long truncateTable(
255      final TableName tableName,
256      final boolean preserveSplits,
257      final long nonceGroup,
258      final long nonce) throws IOException {
259    return -1;
260  }
261
262
263  @Override
264  public long modifyTable(
265      final TableName tableName,
266      final TableDescriptor descriptor,
267      final long nonceGroup,
268      final long nonce) throws IOException {
269    return -1;
270  }
271
272  @Override
273  public long enableTable(
274      final TableName tableName,
275      final long nonceGroup,
276      final long nonce) throws IOException {
277    return -1;
278  }
279
280  @Override
281  public long disableTable(
282      TableName tableName,
283      final long nonceGroup,
284      final long nonce) throws IOException {
285    return -1;
286  }
287
288  @Override
289  public long addColumn(final TableName tableName, final ColumnFamilyDescriptor columnDescriptor,
290      final long nonceGroup, final long nonce) throws IOException {
291    return -1;
292  }
293
294  @Override
295  public long modifyColumn(final TableName tableName, final ColumnFamilyDescriptor descriptor,
296      final long nonceGroup, final long nonce) throws IOException {
297    return -1;
298  }
299
300  @Override
301  public long deleteColumn(final TableName tableName, final byte[] columnName,
302      final long nonceGroup, final long nonce) throws IOException {
303    return -1;
304  }
305
306  @Override
307  public long mergeRegions(
308      final RegionInfo[] regionsToMerge,
309      final boolean forcible,
310      final long nonceGroup,
311      final long nonce) throws IOException {
312    return -1;
313  }
314
315  @Override
316  public long splitRegion(
317      final RegionInfo regionInfo,
318      final byte[] splitRow,
319      final long nonceGroup,
320      final long nonce) throws IOException {
321    return -1;
322  }
323
324  @Override
325  public TableStateManager getTableStateManager() {
326    return mock(TableStateManager.class);
327  }
328
329  @Override
330  public boolean isActiveMaster() {
331    return true;
332  }
333
334  @Override
335  public boolean isInitialized() {
336    return false;
337  }
338
339  @Override
340  public boolean isInMaintenanceMode() {
341    return false;
342  }
343
344  @Override
345  public long getLastMajorCompactionTimestamp(TableName table) throws IOException {
346    return 0;
347  }
348
349  @Override
350  public long getLastMajorCompactionTimestampForRegion(byte[] regionName) throws IOException {
351    return 0;
352  }
353
354  @Override
355  public ClusterSchema getClusterSchema() {
356    return null;
357  }
358
359  @Override
360  public ClusterConnection getClusterConnection() {
361    return null;
362  }
363
364  @Override
365  public LoadBalancer getLoadBalancer() {
366    return null;
367  }
368
369  @Override
370  public FavoredNodesManager getFavoredNodesManager() {
371    return null;
372  }
373
374  @Override
375  public SnapshotManager getSnapshotManager() {
376    return null;
377  }
378
379  @Override
380  public MasterProcedureManagerHost getMasterProcedureManagerHost() {
381    return null;
382  }
383
384  @Override
385  public boolean isSplitOrMergeEnabled(MasterSwitchType switchType) {
386    return false;
387  }
388
389  @Override
390  public long addReplicationPeer(String peerId, ReplicationPeerConfig peerConfig, boolean enabled)
391      throws ReplicationException {
392    return 0;
393  }
394
395  @Override
396  public long removeReplicationPeer(String peerId) throws ReplicationException {
397    return 0;
398  }
399
400  @Override
401  public long enableReplicationPeer(String peerId) throws ReplicationException, IOException {
402    return 0;
403  }
404
405  @Override
406  public long disableReplicationPeer(String peerId) throws ReplicationException, IOException {
407    return 0;
408  }
409
410  @Override
411  public ReplicationPeerConfig getReplicationPeerConfig(String peerId) throws ReplicationException,
412      IOException {
413    return null;
414  }
415
416  @Override
417  public long updateReplicationPeerConfig(String peerId, ReplicationPeerConfig peerConfig)
418      throws ReplicationException, IOException {
419    return 0;
420  }
421
422  @Override
423  public List<ReplicationPeerDescription> listReplicationPeers(String regex)
424      throws ReplicationException, IOException {
425    return null;
426  }
427
428  @Override
429  public LockManager getLockManager() {
430    return null;
431  }
432
433  @Override
434  public String getRegionServerVersion(ServerName sn) {
435    return "0.0.0";
436  }
437
438  @Override
439  public void checkIfShouldMoveSystemRegionAsync() {
440  }
441
442  @Override
443  public String getClientIdAuditPrefix() {
444    return null;
445  }
446
447  @Override
448  public ProcedureEvent<?> getInitializedEvent() {
449    return null;
450  }
451
452  @Override
453  public FileSystem getFileSystem() {
454    return null;
455  }
456
457  @Override
458  public Connection createConnection(Configuration conf) throws IOException {
459    return null;
460  }
461
462  @Override
463  public ReplicationPeerManager getReplicationPeerManager() {
464    return null;
465  }
466
467  @Override
468  public boolean isClusterUp() {
469    return true;
470  }
471}