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