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}