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.client; 019 020import java.util.EnumSet; 021import java.util.List; 022import java.util.Map; 023import java.util.Optional; 024import java.util.Set; 025import java.util.concurrent.CompletableFuture; 026import java.util.concurrent.ExecutorService; 027import java.util.function.Function; 028import java.util.regex.Pattern; 029import org.apache.hadoop.hbase.CacheEvictionStats; 030import org.apache.hadoop.hbase.ClusterMetrics; 031import org.apache.hadoop.hbase.ClusterMetrics.Option; 032import org.apache.hadoop.hbase.NamespaceDescriptor; 033import org.apache.hadoop.hbase.RegionMetrics; 034import org.apache.hadoop.hbase.ServerName; 035import org.apache.hadoop.hbase.TableName; 036import org.apache.hadoop.hbase.client.replication.TableCFs; 037import org.apache.hadoop.hbase.client.security.SecurityCapability; 038import org.apache.hadoop.hbase.net.Address; 039import org.apache.hadoop.hbase.quotas.QuotaFilter; 040import org.apache.hadoop.hbase.quotas.QuotaSettings; 041import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshot; 042import org.apache.hadoop.hbase.replication.ReplicationPeerConfig; 043import org.apache.hadoop.hbase.replication.ReplicationPeerDescription; 044import org.apache.hadoop.hbase.replication.SyncReplicationState; 045import org.apache.hadoop.hbase.rsgroup.RSGroupInfo; 046import org.apache.hadoop.hbase.security.access.GetUserPermissionsRequest; 047import org.apache.hadoop.hbase.security.access.Permission; 048import org.apache.hadoop.hbase.security.access.UserPermission; 049import org.apache.hadoop.hbase.util.FutureUtils; 050import org.apache.hadoop.hbase.util.Pair; 051import org.apache.yetus.audience.InterfaceAudience; 052 053import org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel; 054 055/** 056 * Just a wrapper of {@link RawAsyncHBaseAdmin}. The difference is that users need to provide a 057 * thread pool when constructing this class, and the callback methods registered to the returned 058 * {@link CompletableFuture} will be executed in this thread pool. So usually it is safe for users 059 * to do anything they want in the callbacks without breaking the rpc framework. 060 * @since 2.0.0 061 * @see RawAsyncHBaseAdmin 062 * @see AsyncConnection#getAdmin(ExecutorService) 063 * @see AsyncConnection#getAdminBuilder(ExecutorService) 064 */ 065@InterfaceAudience.Private 066class AsyncHBaseAdmin implements AsyncAdmin { 067 068 private final RawAsyncHBaseAdmin rawAdmin; 069 070 private final ExecutorService pool; 071 072 AsyncHBaseAdmin(RawAsyncHBaseAdmin rawAdmin, ExecutorService pool) { 073 this.rawAdmin = rawAdmin; 074 this.pool = pool; 075 } 076 077 private <T> CompletableFuture<T> wrap(CompletableFuture<T> future) { 078 return FutureUtils.wrapFuture(future, pool); 079 } 080 081 @Override 082 public CompletableFuture<Boolean> tableExists(TableName tableName) { 083 return wrap(rawAdmin.tableExists(tableName)); 084 } 085 086 @Override 087 public CompletableFuture<List<TableDescriptor>> listTableDescriptors(boolean includeSysTables) { 088 return wrap(rawAdmin.listTableDescriptors(includeSysTables)); 089 } 090 091 @Override 092 public CompletableFuture<List<TableDescriptor>> listTableDescriptors(Pattern pattern, 093 boolean includeSysTables) { 094 return wrap(rawAdmin.listTableDescriptors(pattern, includeSysTables)); 095 } 096 097 @Override 098 public CompletableFuture<List<TableDescriptor>> listTableDescriptors(List<TableName> tableNames) { 099 return wrap(rawAdmin.listTableDescriptors(tableNames)); 100 } 101 102 @Override 103 public CompletableFuture<List<TableDescriptor>> listTableDescriptorsByNamespace(String name) { 104 return wrap(rawAdmin.listTableDescriptorsByNamespace(name)); 105 } 106 107 @Override 108 public CompletableFuture<List<TableDescriptor>> listTableDescriptorsByState(boolean isEnabled) { 109 return wrap(rawAdmin.listTableDescriptorsByState(isEnabled)); 110 } 111 112 @Override 113 public CompletableFuture<List<TableName>> listTableNames(boolean includeSysTables) { 114 return wrap(rawAdmin.listTableNames(includeSysTables)); 115 } 116 117 @Override 118 public CompletableFuture<List<TableName>> listTableNames(Pattern pattern, 119 boolean includeSysTables) { 120 return wrap(rawAdmin.listTableNames(pattern, includeSysTables)); 121 } 122 123 @Override 124 public CompletableFuture<List<TableName>> listTableNamesByState(boolean isEnabled) { 125 return wrap(rawAdmin.listTableNamesByState(isEnabled)); 126 } 127 128 @Override 129 public CompletableFuture<List<TableName>> listTableNamesByNamespace(String name) { 130 return wrap(rawAdmin.listTableNamesByNamespace(name)); 131 } 132 133 @Override 134 public CompletableFuture<TableDescriptor> getDescriptor(TableName tableName) { 135 return wrap(rawAdmin.getDescriptor(tableName)); 136 } 137 138 @Override 139 public CompletableFuture<Void> createTable(TableDescriptor desc) { 140 return wrap(rawAdmin.createTable(desc)); 141 } 142 143 @Override 144 public CompletableFuture<Void> createTable(TableDescriptor desc, byte[] startKey, byte[] endKey, 145 int numRegions) { 146 return wrap(rawAdmin.createTable(desc, startKey, endKey, numRegions)); 147 } 148 149 @Override 150 public CompletableFuture<Void> createTable(TableDescriptor desc, byte[][] splitKeys) { 151 return wrap(rawAdmin.createTable(desc, splitKeys)); 152 } 153 154 @Override 155 public CompletableFuture<Void> modifyTable(TableDescriptor desc) { 156 return modifyTable(desc, true); 157 } 158 159 @Override 160 public CompletableFuture<Void> modifyTable(TableDescriptor desc, boolean reopenRegions) { 161 return wrap(rawAdmin.modifyTable(desc, reopenRegions)); 162 } 163 164 @Override 165 public CompletableFuture<Void> reopenTableRegions(TableName tableName) { 166 return wrap(rawAdmin.reopenTableRegions(tableName)); 167 } 168 169 @Override 170 public CompletableFuture<Void> reopenTableRegions(TableName tableName, List<RegionInfo> regions) { 171 return wrap(rawAdmin.reopenTableRegions(tableName, regions)); 172 } 173 174 @Override 175 public CompletableFuture<Void> modifyTableStoreFileTracker(TableName tableName, String dstSFT) { 176 return wrap(rawAdmin.modifyTableStoreFileTracker(tableName, dstSFT)); 177 } 178 179 @Override 180 public CompletableFuture<Void> deleteTable(TableName tableName) { 181 return wrap(rawAdmin.deleteTable(tableName)); 182 } 183 184 @Override 185 public CompletableFuture<Void> truncateTable(TableName tableName, boolean preserveSplits) { 186 return wrap(rawAdmin.truncateTable(tableName, preserveSplits)); 187 } 188 189 @Override 190 public CompletableFuture<Void> enableTable(TableName tableName) { 191 return wrap(rawAdmin.enableTable(tableName)); 192 } 193 194 @Override 195 public CompletableFuture<Void> disableTable(TableName tableName) { 196 return wrap(rawAdmin.disableTable(tableName)); 197 } 198 199 @Override 200 public CompletableFuture<Boolean> isTableEnabled(TableName tableName) { 201 return wrap(rawAdmin.isTableEnabled(tableName)); 202 } 203 204 @Override 205 public CompletableFuture<Boolean> isTableDisabled(TableName tableName) { 206 return wrap(rawAdmin.isTableDisabled(tableName)); 207 } 208 209 @Override 210 public CompletableFuture<Boolean> isTableAvailable(TableName tableName) { 211 return wrap(rawAdmin.isTableAvailable(tableName)); 212 } 213 214 @Override 215 public CompletableFuture<Void> addColumnFamily(TableName tableName, 216 ColumnFamilyDescriptor columnFamily) { 217 return wrap(rawAdmin.addColumnFamily(tableName, columnFamily)); 218 } 219 220 @Override 221 public CompletableFuture<Void> deleteColumnFamily(TableName tableName, byte[] columnFamily) { 222 return wrap(rawAdmin.deleteColumnFamily(tableName, columnFamily)); 223 } 224 225 @Override 226 public CompletableFuture<Void> modifyColumnFamily(TableName tableName, 227 ColumnFamilyDescriptor columnFamily) { 228 return wrap(rawAdmin.modifyColumnFamily(tableName, columnFamily)); 229 } 230 231 @Override 232 public CompletableFuture<Void> modifyColumnFamilyStoreFileTracker(TableName tableName, 233 byte[] family, String dstSFT) { 234 return wrap(rawAdmin.modifyColumnFamilyStoreFileTracker(tableName, family, dstSFT)); 235 } 236 237 @Override 238 public CompletableFuture<Void> createNamespace(NamespaceDescriptor descriptor) { 239 return wrap(rawAdmin.createNamespace(descriptor)); 240 } 241 242 @Override 243 public CompletableFuture<Void> modifyNamespace(NamespaceDescriptor descriptor) { 244 return wrap(rawAdmin.modifyNamespace(descriptor)); 245 } 246 247 @Override 248 public CompletableFuture<Void> deleteNamespace(String name) { 249 return wrap(rawAdmin.deleteNamespace(name)); 250 } 251 252 @Override 253 public CompletableFuture<NamespaceDescriptor> getNamespaceDescriptor(String name) { 254 return wrap(rawAdmin.getNamespaceDescriptor(name)); 255 } 256 257 @Override 258 public CompletableFuture<List<String>> listNamespaces() { 259 return wrap(rawAdmin.listNamespaces()); 260 } 261 262 @Override 263 public CompletableFuture<List<NamespaceDescriptor>> listNamespaceDescriptors() { 264 return wrap(rawAdmin.listNamespaceDescriptors()); 265 } 266 267 @Override 268 public CompletableFuture<List<RegionInfo>> getRegions(ServerName serverName) { 269 return wrap(rawAdmin.getRegions(serverName)); 270 } 271 272 @Override 273 public CompletableFuture<List<RegionInfo>> getRegions(TableName tableName) { 274 return wrap(rawAdmin.getRegions(tableName)); 275 } 276 277 @Override 278 public CompletableFuture<Void> flush(TableName tableName) { 279 return wrap(rawAdmin.flush(tableName)); 280 } 281 282 @Override 283 public CompletableFuture<Void> flush(TableName tableName, byte[] columnFamily) { 284 return wrap(rawAdmin.flush(tableName, columnFamily)); 285 } 286 287 @Override 288 public CompletableFuture<Void> flush(TableName tableName, List<byte[]> columnFamilies) { 289 return wrap(rawAdmin.flush(tableName, columnFamilies)); 290 } 291 292 @Override 293 public CompletableFuture<Void> flushRegion(byte[] regionName) { 294 return wrap(rawAdmin.flushRegion(regionName)); 295 } 296 297 @Override 298 public CompletableFuture<Void> flushRegion(byte[] regionName, byte[] columnFamily) { 299 return wrap(rawAdmin.flushRegion(regionName, columnFamily)); 300 } 301 302 @Override 303 public CompletableFuture<Void> flushRegionServer(ServerName sn) { 304 return wrap(rawAdmin.flushRegionServer(sn)); 305 } 306 307 @Override 308 public CompletableFuture<Void> compact(TableName tableName, CompactType compactType) { 309 return wrap(rawAdmin.compact(tableName, compactType)); 310 } 311 312 @Override 313 public CompletableFuture<Void> compact(TableName tableName, byte[] columnFamily, 314 CompactType compactType) { 315 return wrap(rawAdmin.compact(tableName, columnFamily, compactType)); 316 } 317 318 @Override 319 public CompletableFuture<Void> compactRegion(byte[] regionName) { 320 return wrap(rawAdmin.compactRegion(regionName)); 321 } 322 323 @Override 324 public CompletableFuture<Void> compactRegion(byte[] regionName, byte[] columnFamily) { 325 return wrap(rawAdmin.compactRegion(regionName, columnFamily)); 326 } 327 328 @Override 329 public CompletableFuture<Void> majorCompact(TableName tableName, CompactType compactType) { 330 return wrap(rawAdmin.majorCompact(tableName, compactType)); 331 } 332 333 @Override 334 public CompletableFuture<Void> majorCompact(TableName tableName, byte[] columnFamily, 335 CompactType compactType) { 336 return wrap(rawAdmin.majorCompact(tableName, columnFamily, compactType)); 337 } 338 339 @Override 340 public CompletableFuture<Void> majorCompactRegion(byte[] regionName) { 341 return wrap(rawAdmin.majorCompactRegion(regionName)); 342 } 343 344 @Override 345 public CompletableFuture<Void> majorCompactRegion(byte[] regionName, byte[] columnFamily) { 346 return wrap(rawAdmin.majorCompactRegion(regionName, columnFamily)); 347 } 348 349 @Override 350 public CompletableFuture<Void> compactRegionServer(ServerName serverName) { 351 return wrap(rawAdmin.compactRegionServer(serverName)); 352 } 353 354 @Override 355 public CompletableFuture<Void> majorCompactRegionServer(ServerName serverName) { 356 return wrap(rawAdmin.majorCompactRegionServer(serverName)); 357 } 358 359 @Override 360 public CompletableFuture<Boolean> mergeSwitch(boolean enabled, boolean drainMerges) { 361 return wrap(rawAdmin.mergeSwitch(enabled, drainMerges)); 362 } 363 364 @Override 365 public CompletableFuture<Boolean> isMergeEnabled() { 366 return wrap(rawAdmin.isMergeEnabled()); 367 } 368 369 @Override 370 public CompletableFuture<Boolean> splitSwitch(boolean enabled, boolean drainSplits) { 371 return wrap(rawAdmin.splitSwitch(enabled, drainSplits)); 372 } 373 374 @Override 375 public CompletableFuture<Boolean> isSplitEnabled() { 376 return wrap(rawAdmin.isSplitEnabled()); 377 } 378 379 @Override 380 public CompletableFuture<Void> mergeRegions(List<byte[]> nameOfRegionsToMerge, boolean forcible) { 381 return wrap(rawAdmin.mergeRegions(nameOfRegionsToMerge, forcible)); 382 } 383 384 @Override 385 public CompletableFuture<Void> split(TableName tableName) { 386 return wrap(rawAdmin.split(tableName)); 387 } 388 389 @Override 390 public CompletableFuture<Void> split(TableName tableName, byte[] splitPoint) { 391 return wrap(rawAdmin.split(tableName, splitPoint)); 392 } 393 394 @Override 395 public CompletableFuture<Void> splitRegion(byte[] regionName) { 396 return wrap(rawAdmin.splitRegion(regionName)); 397 } 398 399 @Override 400 public CompletableFuture<Void> splitRegion(byte[] regionName, byte[] splitPoint) { 401 return wrap(rawAdmin.splitRegion(regionName, splitPoint)); 402 } 403 404 @Override 405 public CompletableFuture<Void> truncateRegion(byte[] regionName) { 406 return wrap(rawAdmin.truncateRegion(regionName)); 407 } 408 409 @Override 410 public CompletableFuture<Void> assign(byte[] regionName) { 411 return wrap(rawAdmin.assign(regionName)); 412 } 413 414 @Override 415 public CompletableFuture<Void> unassign(byte[] regionName) { 416 return wrap(rawAdmin.unassign(regionName)); 417 } 418 419 @Override 420 public CompletableFuture<Void> offline(byte[] regionName) { 421 return wrap(rawAdmin.offline(regionName)); 422 } 423 424 @Override 425 public CompletableFuture<Void> move(byte[] regionName) { 426 return wrap(rawAdmin.move(regionName)); 427 } 428 429 @Override 430 public CompletableFuture<Void> move(byte[] regionName, ServerName destServerName) { 431 return wrap(rawAdmin.move(regionName, destServerName)); 432 } 433 434 @Override 435 public CompletableFuture<Void> setQuota(QuotaSettings quota) { 436 return wrap(rawAdmin.setQuota(quota)); 437 } 438 439 @Override 440 public CompletableFuture<List<QuotaSettings>> getQuota(QuotaFilter filter) { 441 return wrap(rawAdmin.getQuota(filter)); 442 } 443 444 @Override 445 public CompletableFuture<Void> addReplicationPeer(String peerId, ReplicationPeerConfig peerConfig, 446 boolean enabled) { 447 return wrap(rawAdmin.addReplicationPeer(peerId, peerConfig, enabled)); 448 } 449 450 @Override 451 public CompletableFuture<Void> removeReplicationPeer(String peerId) { 452 return wrap(rawAdmin.removeReplicationPeer(peerId)); 453 } 454 455 @Override 456 public CompletableFuture<Void> enableReplicationPeer(String peerId) { 457 return wrap(rawAdmin.enableReplicationPeer(peerId)); 458 } 459 460 @Override 461 public CompletableFuture<Void> disableReplicationPeer(String peerId) { 462 return wrap(rawAdmin.disableReplicationPeer(peerId)); 463 } 464 465 @Override 466 public CompletableFuture<ReplicationPeerConfig> getReplicationPeerConfig(String peerId) { 467 return wrap(rawAdmin.getReplicationPeerConfig(peerId)); 468 } 469 470 @Override 471 public CompletableFuture<Void> updateReplicationPeerConfig(String peerId, 472 ReplicationPeerConfig peerConfig) { 473 return wrap(rawAdmin.updateReplicationPeerConfig(peerId, peerConfig)); 474 } 475 476 @Override 477 public CompletableFuture<Void> transitReplicationPeerSyncReplicationState(String peerId, 478 SyncReplicationState clusterState) { 479 return wrap(rawAdmin.transitReplicationPeerSyncReplicationState(peerId, clusterState)); 480 } 481 482 @Override 483 public CompletableFuture<Void> appendReplicationPeerTableCFs(String peerId, 484 Map<TableName, List<String>> tableCfs) { 485 return wrap(rawAdmin.appendReplicationPeerTableCFs(peerId, tableCfs)); 486 } 487 488 @Override 489 public CompletableFuture<Void> removeReplicationPeerTableCFs(String peerId, 490 Map<TableName, List<String>> tableCfs) { 491 return wrap(rawAdmin.removeReplicationPeerTableCFs(peerId, tableCfs)); 492 } 493 494 @Override 495 public CompletableFuture<List<ReplicationPeerDescription>> listReplicationPeers() { 496 return wrap(rawAdmin.listReplicationPeers()); 497 } 498 499 @Override 500 public CompletableFuture<List<ReplicationPeerDescription>> listReplicationPeers(Pattern pattern) { 501 return wrap(rawAdmin.listReplicationPeers(pattern)); 502 } 503 504 @Override 505 public CompletableFuture<List<TableCFs>> listReplicatedTableCFs() { 506 return wrap(rawAdmin.listReplicatedTableCFs()); 507 } 508 509 @Override 510 public CompletableFuture<Void> enableTableReplication(TableName tableName) { 511 return wrap(rawAdmin.enableTableReplication(tableName)); 512 } 513 514 @Override 515 public CompletableFuture<Void> disableTableReplication(TableName tableName) { 516 return wrap(rawAdmin.disableTableReplication(tableName)); 517 } 518 519 @Override 520 public CompletableFuture<Boolean> isReplicationPeerEnabled(String peerId) { 521 return wrap(rawAdmin.isReplicationPeerEnabled(peerId)); 522 } 523 524 @Override 525 public CompletableFuture<Boolean> replicationPeerModificationSwitch(boolean on, 526 boolean drainProcedures) { 527 return wrap(rawAdmin.replicationPeerModificationSwitch(on, drainProcedures)); 528 } 529 530 @Override 531 public CompletableFuture<Boolean> isReplicationPeerModificationEnabled() { 532 return wrap(rawAdmin.isReplicationPeerModificationEnabled()); 533 } 534 535 @Override 536 public CompletableFuture<Void> snapshot(SnapshotDescription snapshot) { 537 return wrap(rawAdmin.snapshot(snapshot)); 538 } 539 540 @Override 541 public CompletableFuture<Boolean> isSnapshotFinished(SnapshotDescription snapshot) { 542 return wrap(rawAdmin.isSnapshotFinished(snapshot)); 543 } 544 545 @Override 546 public CompletableFuture<Void> restoreSnapshot(String snapshotName) { 547 return wrap(rawAdmin.restoreSnapshot(snapshotName)); 548 } 549 550 @Override 551 public CompletableFuture<Void> restoreSnapshot(String snapshotName, boolean takeFailSafeSnapshot, 552 boolean restoreAcl) { 553 return wrap(rawAdmin.restoreSnapshot(snapshotName, takeFailSafeSnapshot, restoreAcl)); 554 } 555 556 @Override 557 public CompletableFuture<Void> cloneSnapshot(String snapshotName, TableName tableName, 558 boolean restoreAcl, String customSFT) { 559 return wrap(rawAdmin.cloneSnapshot(snapshotName, tableName, restoreAcl, customSFT)); 560 } 561 562 @Override 563 public CompletableFuture<List<SnapshotDescription>> listSnapshots() { 564 return wrap(rawAdmin.listSnapshots()); 565 } 566 567 @Override 568 public CompletableFuture<List<SnapshotDescription>> listSnapshots(Pattern pattern) { 569 return wrap(rawAdmin.listSnapshots(pattern)); 570 } 571 572 @Override 573 public CompletableFuture<List<SnapshotDescription>> listTableSnapshots(Pattern tableNamePattern) { 574 return wrap(rawAdmin.listTableSnapshots(tableNamePattern)); 575 } 576 577 @Override 578 public CompletableFuture<List<SnapshotDescription>> listTableSnapshots(Pattern tableNamePattern, 579 Pattern snapshotNamePattern) { 580 return wrap(rawAdmin.listTableSnapshots(tableNamePattern, snapshotNamePattern)); 581 } 582 583 @Override 584 public CompletableFuture<Void> deleteSnapshot(String snapshotName) { 585 return wrap(rawAdmin.deleteSnapshot(snapshotName)); 586 } 587 588 @Override 589 public CompletableFuture<Void> deleteSnapshots() { 590 return wrap(rawAdmin.deleteSnapshots()); 591 } 592 593 @Override 594 public CompletableFuture<Void> deleteSnapshots(Pattern pattern) { 595 return wrap(rawAdmin.deleteSnapshots(pattern)); 596 } 597 598 @Override 599 public CompletableFuture<Void> deleteTableSnapshots(Pattern tableNamePattern) { 600 return wrap(rawAdmin.deleteTableSnapshots(tableNamePattern)); 601 } 602 603 @Override 604 public CompletableFuture<Void> deleteTableSnapshots(Pattern tableNamePattern, 605 Pattern snapshotNamePattern) { 606 return wrap(rawAdmin.deleteTableSnapshots(tableNamePattern, snapshotNamePattern)); 607 } 608 609 @Override 610 public CompletableFuture<Void> execProcedure(String signature, String instance, 611 Map<String, String> props) { 612 return wrap(rawAdmin.execProcedure(signature, instance, props)); 613 } 614 615 @Override 616 public CompletableFuture<byte[]> execProcedureWithReturn(String signature, String instance, 617 Map<String, String> props) { 618 return wrap(rawAdmin.execProcedureWithReturn(signature, instance, props)); 619 } 620 621 @Override 622 public CompletableFuture<Boolean> isProcedureFinished(String signature, String instance, 623 Map<String, String> props) { 624 return wrap(rawAdmin.isProcedureFinished(signature, instance, props)); 625 } 626 627 @Override 628 public CompletableFuture<Boolean> abortProcedure(long procId, boolean mayInterruptIfRunning) { 629 return wrap(rawAdmin.abortProcedure(procId, mayInterruptIfRunning)); 630 } 631 632 @Override 633 public CompletableFuture<String> getProcedures() { 634 return wrap(rawAdmin.getProcedures()); 635 } 636 637 @Override 638 public CompletableFuture<String> getLocks() { 639 return wrap(rawAdmin.getLocks()); 640 } 641 642 @Override 643 public CompletableFuture<Void> decommissionRegionServers(List<ServerName> servers, 644 boolean offload) { 645 return wrap(rawAdmin.decommissionRegionServers(servers, offload)); 646 } 647 648 @Override 649 public CompletableFuture<List<ServerName>> listDecommissionedRegionServers() { 650 return wrap(rawAdmin.listDecommissionedRegionServers()); 651 } 652 653 @Override 654 public CompletableFuture<Void> recommissionRegionServer(ServerName server, 655 List<byte[]> encodedRegionNames) { 656 return wrap(rawAdmin.recommissionRegionServer(server, encodedRegionNames)); 657 } 658 659 @Override 660 public CompletableFuture<ClusterMetrics> getClusterMetrics() { 661 return getClusterMetrics(EnumSet.allOf(Option.class)); 662 } 663 664 @Override 665 public CompletableFuture<ClusterMetrics> getClusterMetrics(EnumSet<Option> options) { 666 return wrap(rawAdmin.getClusterMetrics(options)); 667 } 668 669 @Override 670 public CompletableFuture<Void> shutdown() { 671 return wrap(rawAdmin.shutdown()); 672 } 673 674 @Override 675 public CompletableFuture<Void> stopMaster() { 676 return wrap(rawAdmin.stopMaster()); 677 } 678 679 @Override 680 public CompletableFuture<Void> stopRegionServer(ServerName serverName) { 681 return wrap(rawAdmin.stopRegionServer(serverName)); 682 } 683 684 @Override 685 public CompletableFuture<Void> updateConfiguration(ServerName serverName) { 686 return wrap(rawAdmin.updateConfiguration(serverName)); 687 } 688 689 @Override 690 public CompletableFuture<Void> updateConfiguration() { 691 return wrap(rawAdmin.updateConfiguration()); 692 } 693 694 @Override 695 public CompletableFuture<Void> updateConfiguration(String groupName) { 696 return wrap(rawAdmin.updateConfiguration(groupName)); 697 } 698 699 @Override 700 public CompletableFuture<Void> rollWALWriter(ServerName serverName) { 701 return wrap(rawAdmin.rollWALWriter(serverName)); 702 } 703 704 @Override 705 public CompletableFuture<Map<ServerName, Long>> rollAllWALWriters() { 706 return wrap(rawAdmin.rollAllWALWriters()); 707 } 708 709 @Override 710 public CompletableFuture<Void> clearCompactionQueues(ServerName serverName, Set<String> queues) { 711 return wrap(rawAdmin.clearCompactionQueues(serverName, queues)); 712 } 713 714 @Override 715 public CompletableFuture<List<SecurityCapability>> getSecurityCapabilities() { 716 return wrap(rawAdmin.getSecurityCapabilities()); 717 } 718 719 @Override 720 public CompletableFuture<List<RegionMetrics>> getRegionMetrics(ServerName serverName) { 721 return wrap(rawAdmin.getRegionMetrics(serverName)); 722 } 723 724 @Override 725 public CompletableFuture<List<RegionMetrics>> getRegionMetrics(ServerName serverName, 726 TableName tableName) { 727 return wrap(rawAdmin.getRegionMetrics(serverName, tableName)); 728 } 729 730 @Override 731 public CompletableFuture<Boolean> isMasterInMaintenanceMode() { 732 return wrap(rawAdmin.isMasterInMaintenanceMode()); 733 } 734 735 @Override 736 public CompletableFuture<CompactionState> getCompactionState(TableName tableName, 737 CompactType compactType) { 738 return wrap(rawAdmin.getCompactionState(tableName, compactType)); 739 } 740 741 @Override 742 public CompletableFuture<CompactionState> getCompactionStateForRegion(byte[] regionName) { 743 return wrap(rawAdmin.getCompactionStateForRegion(regionName)); 744 } 745 746 @Override 747 public CompletableFuture<Optional<Long>> getLastMajorCompactionTimestamp(TableName tableName) { 748 return wrap(rawAdmin.getLastMajorCompactionTimestamp(tableName)); 749 } 750 751 @Override 752 public CompletableFuture<Optional<Long>> 753 getLastMajorCompactionTimestampForRegion(byte[] regionName) { 754 return wrap(rawAdmin.getLastMajorCompactionTimestampForRegion(regionName)); 755 } 756 757 @Override 758 public CompletableFuture<Boolean> balancerSwitch(boolean on, boolean drainRITs) { 759 return wrap(rawAdmin.balancerSwitch(on, drainRITs)); 760 } 761 762 @Override 763 public CompletableFuture<BalanceResponse> balance(BalanceRequest request) { 764 return wrap(rawAdmin.balance(request)); 765 } 766 767 @Override 768 public CompletableFuture<Boolean> isBalancerEnabled() { 769 return wrap(rawAdmin.isBalancerEnabled()); 770 } 771 772 @Override 773 public CompletableFuture<Boolean> normalizerSwitch(boolean on) { 774 return wrap(rawAdmin.normalizerSwitch(on)); 775 } 776 777 @Override 778 public CompletableFuture<Boolean> isNormalizerEnabled() { 779 return wrap(rawAdmin.isNormalizerEnabled()); 780 } 781 782 @Override 783 public CompletableFuture<Boolean> normalize(NormalizeTableFilterParams ntfp) { 784 return wrap(rawAdmin.normalize(ntfp)); 785 } 786 787 @Override 788 public CompletableFuture<Boolean> cleanerChoreSwitch(boolean enabled) { 789 return wrap(rawAdmin.cleanerChoreSwitch(enabled)); 790 } 791 792 @Override 793 public CompletableFuture<Boolean> isCleanerChoreEnabled() { 794 return wrap(rawAdmin.isCleanerChoreEnabled()); 795 } 796 797 @Override 798 public CompletableFuture<Boolean> runCleanerChore() { 799 return wrap(rawAdmin.runCleanerChore()); 800 } 801 802 @Override 803 public CompletableFuture<Boolean> catalogJanitorSwitch(boolean enabled) { 804 return wrap(rawAdmin.catalogJanitorSwitch(enabled)); 805 } 806 807 @Override 808 public CompletableFuture<Boolean> isCatalogJanitorEnabled() { 809 return wrap(rawAdmin.isCatalogJanitorEnabled()); 810 } 811 812 @Override 813 public CompletableFuture<Integer> runCatalogJanitor() { 814 return wrap(rawAdmin.runCatalogJanitor()); 815 } 816 817 @Override 818 public <S, R> CompletableFuture<R> coprocessorService(Function<RpcChannel, S> stubMaker, 819 ServiceCaller<S, R> callable) { 820 return wrap(rawAdmin.coprocessorService(stubMaker, callable)); 821 } 822 823 @Override 824 public <S, R> CompletableFuture<R> coprocessorService(Function<RpcChannel, S> stubMaker, 825 ServiceCaller<S, R> callable, ServerName serverName) { 826 return wrap(rawAdmin.coprocessorService(stubMaker, callable, serverName)); 827 } 828 829 @Override 830 public CompletableFuture<List<ServerName>> listDeadServers() { 831 return wrap(rawAdmin.listDeadServers()); 832 } 833 834 @Override 835 public CompletableFuture<List<ServerName>> listUnknownServers() { 836 return wrap(rawAdmin.listUnknownServers()); 837 } 838 839 @Override 840 public CompletableFuture<List<ServerName>> clearDeadServers(List<ServerName> servers) { 841 return wrap(rawAdmin.clearDeadServers(servers)); 842 } 843 844 @Override 845 public CompletableFuture<CacheEvictionStats> clearBlockCache(TableName tableName) { 846 return wrap(rawAdmin.clearBlockCache(tableName)); 847 } 848 849 @Override 850 public CompletableFuture<Void> cloneTableSchema(TableName tableName, TableName newTableName, 851 boolean preserveSplits) { 852 return wrap(rawAdmin.cloneTableSchema(tableName, newTableName, preserveSplits)); 853 } 854 855 @Override 856 public CompletableFuture<Map<ServerName, Boolean>> compactionSwitch(boolean switchState, 857 List<String> serverNamesList) { 858 return wrap(rawAdmin.compactionSwitch(switchState, serverNamesList)); 859 } 860 861 @Override 862 public CompletableFuture<Boolean> switchRpcThrottle(boolean enable) { 863 return wrap(rawAdmin.switchRpcThrottle(enable)); 864 } 865 866 @Override 867 public CompletableFuture<Boolean> isRpcThrottleEnabled() { 868 return wrap(rawAdmin.isRpcThrottleEnabled()); 869 } 870 871 @Override 872 public CompletableFuture<Boolean> exceedThrottleQuotaSwitch(boolean enable) { 873 return wrap(rawAdmin.exceedThrottleQuotaSwitch(enable)); 874 } 875 876 @Override 877 public CompletableFuture<Map<TableName, Long>> getSpaceQuotaTableSizes() { 878 return wrap(rawAdmin.getSpaceQuotaTableSizes()); 879 } 880 881 @Override 882 public CompletableFuture<Map<TableName, SpaceQuotaSnapshot>> 883 getRegionServerSpaceQuotaSnapshots(ServerName serverName) { 884 return wrap(rawAdmin.getRegionServerSpaceQuotaSnapshots(serverName)); 885 } 886 887 @Override 888 public CompletableFuture<SpaceQuotaSnapshot> getCurrentSpaceQuotaSnapshot(String namespace) { 889 return wrap(rawAdmin.getCurrentSpaceQuotaSnapshot(namespace)); 890 } 891 892 @Override 893 public CompletableFuture<SpaceQuotaSnapshot> getCurrentSpaceQuotaSnapshot(TableName tableName) { 894 return wrap(rawAdmin.getCurrentSpaceQuotaSnapshot(tableName)); 895 } 896 897 @Override 898 public CompletableFuture<Void> grant(UserPermission userPermission, 899 boolean mergeExistingPermissions) { 900 return wrap(rawAdmin.grant(userPermission, mergeExistingPermissions)); 901 } 902 903 @Override 904 public CompletableFuture<Void> revoke(UserPermission userPermission) { 905 return wrap(rawAdmin.revoke(userPermission)); 906 } 907 908 @Override 909 public CompletableFuture<List<UserPermission>> 910 getUserPermissions(GetUserPermissionsRequest getUserPermissionsRequest) { 911 return wrap(rawAdmin.getUserPermissions(getUserPermissionsRequest)); 912 } 913 914 @Override 915 public CompletableFuture<List<Boolean>> hasUserPermissions(String userName, 916 List<Permission> permissions) { 917 return wrap(rawAdmin.hasUserPermissions(userName, permissions)); 918 } 919 920 @Override 921 public CompletableFuture<Boolean> snapshotCleanupSwitch(final boolean on, final boolean sync) { 922 return wrap(rawAdmin.snapshotCleanupSwitch(on, sync)); 923 } 924 925 @Override 926 public CompletableFuture<Boolean> isSnapshotCleanupEnabled() { 927 return wrap(rawAdmin.isSnapshotCleanupEnabled()); 928 } 929 930 @Override 931 public CompletableFuture<List<Boolean>> clearSlowLogResponses(Set<ServerName> serverNames) { 932 return wrap(rawAdmin.clearSlowLogResponses(serverNames)); 933 } 934 935 @Override 936 public CompletableFuture<RSGroupInfo> getRSGroup(String groupName) { 937 return wrap(rawAdmin.getRSGroup(groupName)); 938 } 939 940 @Override 941 public CompletableFuture<Void> moveServersToRSGroup(Set<Address> servers, String groupName) { 942 return wrap(rawAdmin.moveServersToRSGroup(servers, groupName)); 943 } 944 945 @Override 946 public CompletableFuture<Void> addRSGroup(String groupName) { 947 return wrap(rawAdmin.addRSGroup(groupName)); 948 } 949 950 @Override 951 public CompletableFuture<Void> removeRSGroup(String groupName) { 952 return wrap(rawAdmin.removeRSGroup(groupName)); 953 } 954 955 @Override 956 public CompletableFuture<BalanceResponse> balanceRSGroup(String groupName, 957 BalanceRequest request) { 958 return wrap(rawAdmin.balanceRSGroup(groupName, request)); 959 } 960 961 @Override 962 public CompletableFuture<List<RSGroupInfo>> listRSGroups() { 963 return wrap(rawAdmin.listRSGroups()); 964 } 965 966 @Override 967 public CompletableFuture<List<TableName>> listTablesInRSGroup(String groupName) { 968 return wrap(rawAdmin.listTablesInRSGroup(groupName)); 969 } 970 971 @Override 972 public CompletableFuture<Pair<List<String>, List<TableName>>> 973 getConfiguredNamespacesAndTablesInRSGroup(String groupName) { 974 return wrap(rawAdmin.getConfiguredNamespacesAndTablesInRSGroup(groupName)); 975 } 976 977 @Override 978 public CompletableFuture<RSGroupInfo> getRSGroup(Address hostPort) { 979 return wrap(rawAdmin.getRSGroup(hostPort)); 980 } 981 982 @Override 983 public CompletableFuture<Void> removeServersFromRSGroup(Set<Address> servers) { 984 return wrap(rawAdmin.removeServersFromRSGroup(servers)); 985 } 986 987 @Override 988 public CompletableFuture<RSGroupInfo> getRSGroup(TableName tableName) { 989 return wrap(rawAdmin.getRSGroup(tableName)); 990 } 991 992 @Override 993 public CompletableFuture<Void> setRSGroup(Set<TableName> tables, String groupName) { 994 return wrap(rawAdmin.setRSGroup(tables, groupName)); 995 } 996 997 @Override 998 public CompletableFuture<Void> renameRSGroup(String oldName, String newName) { 999 return wrap(rawAdmin.renameRSGroup(oldName, newName)); 1000 } 1001 1002 @Override 1003 public CompletableFuture<Void> updateRSGroupConfig(String groupName, 1004 Map<String, String> configuration) { 1005 return wrap(rawAdmin.updateRSGroupConfig(groupName, configuration)); 1006 } 1007 1008 @Override 1009 public CompletableFuture<List<LogEntry>> getLogEntries(Set<ServerName> serverNames, 1010 String logType, ServerType serverType, int limit, Map<String, Object> filterParams) { 1011 return wrap(rawAdmin.getLogEntries(serverNames, logType, serverType, limit, filterParams)); 1012 } 1013 1014 @Override 1015 public CompletableFuture<Void> flushMasterStore() { 1016 return wrap(rawAdmin.flushMasterStore()); 1017 } 1018 1019 @Override 1020 public CompletableFuture<List<String>> getCachedFilesList(ServerName serverName) { 1021 return wrap(rawAdmin.getCachedFilesList(serverName)); 1022 } 1023 1024 @Override 1025 public CompletableFuture<Void> restoreBackupSystemTable(String snapshotName) { 1026 return wrap(rawAdmin.restoreBackupSystemTable(snapshotName)); 1027 } 1028}