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}