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