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