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