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.MetaTableLocator; 056import org.apache.hadoop.hbase.zookeeper.ZKWatcher; 057 058public class MockNoopMasterServices implements MasterServices { 059 060 private final Configuration conf; 061 private final MetricsMaster metricsMaster; 062 063 public MockNoopMasterServices() { 064 this(null); 065 } 066 067 public MockNoopMasterServices(final Configuration conf) { 068 this.conf = conf; 069 this.metricsMaster = new MetricsMaster(new MetricsMasterWrapperImpl(null)); 070 } 071 072 @Override 073 public void checkTableModifiable(TableName tableName) throws IOException { 074 //no-op 075 } 076 077 @Override 078 public long createTable( 079 final TableDescriptor desc, 080 final byte[][] splitKeys, 081 final long nonceGroup, 082 final long nonce) throws IOException { 083 // no-op 084 return -1; 085 } 086 087 @Override 088 public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException { 089 return -1; 090 } 091 092 @Override 093 public AssignmentManager getAssignmentManager() { 094 return null; 095 } 096 097 @Override 098 public ExecutorService getExecutorService() { 099 return null; 100 } 101 102 @Override 103 public ChoreService getChoreService() { 104 return null; 105 } 106 107 @Override 108 public RegionNormalizer getRegionNormalizer() { 109 return null; 110 } 111 112 @Override 113 public CatalogJanitor getCatalogJanitor() { 114 return null; 115 } 116 117 @Override 118 public MasterFileSystem getMasterFileSystem() { 119 return null; 120 } 121 122 @Override 123 public MasterWalManager getMasterWalManager() { 124 return null; 125 } 126 127 @Override 128 public MasterCoprocessorHost getMasterCoprocessorHost() { 129 return null; 130 } 131 132 @Override 133 public MasterQuotaManager getMasterQuotaManager() { 134 return null; 135 } 136 137 @Override 138 public ProcedureExecutor<MasterProcedureEnv> getMasterProcedureExecutor() { 139 return null; 140 } 141 142 @Override 143 public MetricsMaster getMasterMetrics() { 144 return metricsMaster; 145 } 146 147 @Override 148 public ServerManager getServerManager() { 149 return null; 150 } 151 152 @Override 153 public ZKWatcher getZooKeeper() { 154 return null; 155 } 156 157 @Override 158 public CoordinatedStateManager getCoordinatedStateManager() { 159 return null; 160 } 161 162 @Override 163 public MetaTableLocator getMetaTableLocator() { 164 return null; 165 } 166 167 @Override 168 public ClusterConnection getConnection() { 169 return null; 170 } 171 172 @Override 173 public Configuration getConfiguration() { 174 return conf; 175 } 176 177 @Override 178 public ServerName getServerName() { 179 return ServerName.valueOf("mock.master", 12345, 1); 180 } 181 182 @Override 183 public void abort(String why, Throwable e) { 184 //no-op 185 } 186 187 @Override 188 public boolean isAborted() { 189 return false; 190 } 191 192 private boolean stopped = false; 193 194 @Override 195 public void stop(String why) { 196 stopped = true; 197 } 198 199 @Override 200 public boolean isStopping() { 201 return stopped; 202 } 203 204 @Override 205 public boolean isStopped() { 206 return stopped; 207 } 208 209 @Override 210 public TableDescriptors getTableDescriptors() { 211 return null; 212 } 213 214 @Override 215 public boolean registerService(Service instance) { 216 return false; 217 } 218 219 @Override 220 public boolean abortProcedure(final long procId, final boolean mayInterruptIfRunning) 221 throws IOException { 222 return false; //To change body of implemented methods use File | Settings | File Templates. 223 } 224 225 @Override 226 public List<Procedure<?>> getProcedures() throws IOException { 227 return null; //To change body of implemented methods use File | Settings | File Templates. 228 } 229 230 @Override 231 public List<LockedResource> getLocks() throws IOException { 232 return null; 233 } 234 235 @Override 236 public List<TableDescriptor> listTableDescriptorsByNamespace(String name) throws IOException { 237 return null; //To change body of implemented methods use File | Settings | File Templates. 238 } 239 240 @Override 241 public List<TableName> listTableNamesByNamespace(String name) throws IOException { 242 return null; 243 } 244 245 @Override 246 public long deleteTable( 247 final TableName tableName, 248 final long nonceGroup, 249 final long nonce) throws IOException { 250 return -1; 251 } 252 253 @Override 254 public long truncateTable( 255 final TableName tableName, 256 final boolean preserveSplits, 257 final long nonceGroup, 258 final long nonce) throws IOException { 259 return -1; 260 } 261 262 263 @Override 264 public long modifyTable( 265 final TableName tableName, 266 final TableDescriptor descriptor, 267 final long nonceGroup, 268 final long nonce) throws IOException { 269 return -1; 270 } 271 272 @Override 273 public long enableTable( 274 final TableName tableName, 275 final long nonceGroup, 276 final long nonce) throws IOException { 277 return -1; 278 } 279 280 @Override 281 public long disableTable( 282 TableName tableName, 283 final long nonceGroup, 284 final long nonce) throws IOException { 285 return -1; 286 } 287 288 @Override 289 public long addColumn(final TableName tableName, final ColumnFamilyDescriptor columnDescriptor, 290 final long nonceGroup, final long nonce) throws IOException { 291 return -1; 292 } 293 294 @Override 295 public long modifyColumn(final TableName tableName, final ColumnFamilyDescriptor descriptor, 296 final long nonceGroup, final long nonce) throws IOException { 297 return -1; 298 } 299 300 @Override 301 public long deleteColumn(final TableName tableName, final byte[] columnName, 302 final long nonceGroup, final long nonce) throws IOException { 303 return -1; 304 } 305 306 @Override 307 public long mergeRegions( 308 final RegionInfo[] regionsToMerge, 309 final boolean forcible, 310 final long nonceGroup, 311 final long nonce) throws IOException { 312 return -1; 313 } 314 315 @Override 316 public long splitRegion( 317 final RegionInfo regionInfo, 318 final byte[] splitRow, 319 final long nonceGroup, 320 final long nonce) throws IOException { 321 return -1; 322 } 323 324 @Override 325 public TableStateManager getTableStateManager() { 326 return mock(TableStateManager.class); 327 } 328 329 @Override 330 public boolean isActiveMaster() { 331 return true; 332 } 333 334 @Override 335 public boolean isInitialized() { 336 return false; 337 } 338 339 @Override 340 public boolean isInMaintenanceMode() { 341 return false; 342 } 343 344 @Override 345 public long getLastMajorCompactionTimestamp(TableName table) throws IOException { 346 return 0; 347 } 348 349 @Override 350 public long getLastMajorCompactionTimestampForRegion(byte[] regionName) throws IOException { 351 return 0; 352 } 353 354 @Override 355 public ClusterSchema getClusterSchema() { 356 return null; 357 } 358 359 @Override 360 public ClusterConnection getClusterConnection() { 361 return null; 362 } 363 364 @Override 365 public LoadBalancer getLoadBalancer() { 366 return null; 367 } 368 369 @Override 370 public FavoredNodesManager getFavoredNodesManager() { 371 return null; 372 } 373 374 @Override 375 public SnapshotManager getSnapshotManager() { 376 return null; 377 } 378 379 @Override 380 public MasterProcedureManagerHost getMasterProcedureManagerHost() { 381 return null; 382 } 383 384 @Override 385 public boolean isSplitOrMergeEnabled(MasterSwitchType switchType) { 386 return false; 387 } 388 389 @Override 390 public long addReplicationPeer(String peerId, ReplicationPeerConfig peerConfig, boolean enabled) 391 throws ReplicationException { 392 return 0; 393 } 394 395 @Override 396 public long removeReplicationPeer(String peerId) throws ReplicationException { 397 return 0; 398 } 399 400 @Override 401 public long enableReplicationPeer(String peerId) throws ReplicationException, IOException { 402 return 0; 403 } 404 405 @Override 406 public long disableReplicationPeer(String peerId) throws ReplicationException, IOException { 407 return 0; 408 } 409 410 @Override 411 public ReplicationPeerConfig getReplicationPeerConfig(String peerId) throws ReplicationException, 412 IOException { 413 return null; 414 } 415 416 @Override 417 public long updateReplicationPeerConfig(String peerId, ReplicationPeerConfig peerConfig) 418 throws ReplicationException, IOException { 419 return 0; 420 } 421 422 @Override 423 public List<ReplicationPeerDescription> listReplicationPeers(String regex) 424 throws ReplicationException, IOException { 425 return null; 426 } 427 428 @Override 429 public LockManager getLockManager() { 430 return null; 431 } 432 433 @Override 434 public String getRegionServerVersion(ServerName sn) { 435 return "0.0.0"; 436 } 437 438 @Override 439 public void checkIfShouldMoveSystemRegionAsync() { 440 } 441 442 @Override 443 public String getClientIdAuditPrefix() { 444 return null; 445 } 446 447 @Override 448 public ProcedureEvent<?> getInitializedEvent() { 449 return null; 450 } 451 452 @Override 453 public FileSystem getFileSystem() { 454 return null; 455 } 456 457 @Override 458 public Connection createConnection(Configuration conf) throws IOException { 459 return null; 460 } 461 462 @Override 463 public ReplicationPeerManager getReplicationPeerManager() { 464 return null; 465 } 466 467 @Override 468 public boolean isClusterUp() { 469 return true; 470 } 471}