http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html index e63cd50..d8c0d2b 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html @@ -422,7 +422,7 @@ <span class="sourceLineNo">414</span> }<a name="line.414"></a> <span class="sourceLineNo">415</span><a name="line.415"></a> <span class="sourceLineNo">416</span> /**<a name="line.416"></a> -<span class="sourceLineNo">417</span> * {@link #listTables(boolean)}<a name="line.417"></a> +<span class="sourceLineNo">417</span> * {@link #listTableDescriptors(boolean)}<a name="line.417"></a> <span class="sourceLineNo">418</span> */<a name="line.418"></a> <span class="sourceLineNo">419</span> @Override<a name="line.419"></a> <span class="sourceLineNo">420</span> public CompletableFuture<List<TableDescriptor>> listTableDescriptors(Pattern pattern,<a name="line.420"></a> @@ -3476,16 +3476,79 @@ <span class="sourceLineNo">3468</span> return future;<a name="line.3468"></a> <span class="sourceLineNo">3469</span> }<a name="line.3469"></a> <span class="sourceLineNo">3470</span><a name="line.3470"></a> -<span class="sourceLineNo">3471</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3471"></a> -<span class="sourceLineNo">3472</span> List<RegionInfo> hris) {<a name="line.3472"></a> -<span class="sourceLineNo">3473</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3473"></a> -<span class="sourceLineNo">3474</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3474"></a> -<span class="sourceLineNo">3475</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3475"></a> -<span class="sourceLineNo">3476</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a> -<span class="sourceLineNo">3477</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a> -<span class="sourceLineNo">3478</span> .serverName(serverName).call();<a name="line.3478"></a> -<span class="sourceLineNo">3479</span> }<a name="line.3479"></a> -<span class="sourceLineNo">3480</span>}<a name="line.3480"></a> +<span class="sourceLineNo">3471</span> @Override<a name="line.3471"></a> +<span class="sourceLineNo">3472</span> public CompletableFuture<Void> cloneTableSchema(TableName tableName, TableName newTableName,<a name="line.3472"></a> +<span class="sourceLineNo">3473</span> boolean preserveSplits) {<a name="line.3473"></a> +<span class="sourceLineNo">3474</span> CompletableFuture<Void> future = new CompletableFuture<>();<a name="line.3474"></a> +<span class="sourceLineNo">3475</span> tableExists(tableName).whenComplete(<a name="line.3475"></a> +<span class="sourceLineNo">3476</span> (exist, err) -> {<a name="line.3476"></a> +<span class="sourceLineNo">3477</span> if (err != null) {<a name="line.3477"></a> +<span class="sourceLineNo">3478</span> future.completeExceptionally(err);<a name="line.3478"></a> +<span class="sourceLineNo">3479</span> return;<a name="line.3479"></a> +<span class="sourceLineNo">3480</span> }<a name="line.3480"></a> +<span class="sourceLineNo">3481</span> if (!exist) {<a name="line.3481"></a> +<span class="sourceLineNo">3482</span> future.completeExceptionally(new TableNotFoundException(tableName));<a name="line.3482"></a> +<span class="sourceLineNo">3483</span> return;<a name="line.3483"></a> +<span class="sourceLineNo">3484</span> }<a name="line.3484"></a> +<span class="sourceLineNo">3485</span> tableExists(newTableName).whenComplete(<a name="line.3485"></a> +<span class="sourceLineNo">3486</span> (exist1, err1) -> {<a name="line.3486"></a> +<span class="sourceLineNo">3487</span> if (err1 != null) {<a name="line.3487"></a> +<span class="sourceLineNo">3488</span> future.completeExceptionally(err1);<a name="line.3488"></a> +<span class="sourceLineNo">3489</span> return;<a name="line.3489"></a> +<span class="sourceLineNo">3490</span> }<a name="line.3490"></a> +<span class="sourceLineNo">3491</span> if (exist1) {<a name="line.3491"></a> +<span class="sourceLineNo">3492</span> future.completeExceptionally(new TableExistsException(newTableName));<a name="line.3492"></a> +<span class="sourceLineNo">3493</span> return;<a name="line.3493"></a> +<span class="sourceLineNo">3494</span> }<a name="line.3494"></a> +<span class="sourceLineNo">3495</span> getDescriptor(tableName).whenComplete(<a name="line.3495"></a> +<span class="sourceLineNo">3496</span> (tableDesc, err2) -> {<a name="line.3496"></a> +<span class="sourceLineNo">3497</span> if (err2 != null) {<a name="line.3497"></a> +<span class="sourceLineNo">3498</span> future.completeExceptionally(err2);<a name="line.3498"></a> +<span class="sourceLineNo">3499</span> return;<a name="line.3499"></a> +<span class="sourceLineNo">3500</span> }<a name="line.3500"></a> +<span class="sourceLineNo">3501</span> TableDescriptor newTableDesc<a name="line.3501"></a> +<span class="sourceLineNo">3502</span> = TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a> +<span class="sourceLineNo">3503</span> if (preserveSplits) {<a name="line.3503"></a> +<span class="sourceLineNo">3504</span> getTableSplits(tableName).whenComplete((splits, err3) -> {<a name="line.3504"></a> +<span class="sourceLineNo">3505</span> if (err3 != null) {<a name="line.3505"></a> +<span class="sourceLineNo">3506</span> future.completeExceptionally(err3);<a name="line.3506"></a> +<span class="sourceLineNo">3507</span> } else {<a name="line.3507"></a> +<span class="sourceLineNo">3508</span> createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a> +<span class="sourceLineNo">3509</span> (result, err4) -> {<a name="line.3509"></a> +<span class="sourceLineNo">3510</span> if (err4 != null) {<a name="line.3510"></a> +<span class="sourceLineNo">3511</span> future.completeExceptionally(err4);<a name="line.3511"></a> +<span class="sourceLineNo">3512</span> } else {<a name="line.3512"></a> +<span class="sourceLineNo">3513</span> future.complete(result);<a name="line.3513"></a> +<span class="sourceLineNo">3514</span> }<a name="line.3514"></a> +<span class="sourceLineNo">3515</span> });<a name="line.3515"></a> +<span class="sourceLineNo">3516</span> }<a name="line.3516"></a> +<span class="sourceLineNo">3517</span> });<a name="line.3517"></a> +<span class="sourceLineNo">3518</span> } else {<a name="line.3518"></a> +<span class="sourceLineNo">3519</span> createTable(newTableDesc).whenComplete(<a name="line.3519"></a> +<span class="sourceLineNo">3520</span> (result, err5) -> {<a name="line.3520"></a> +<span class="sourceLineNo">3521</span> if (err5 != null) {<a name="line.3521"></a> +<span class="sourceLineNo">3522</span> future.completeExceptionally(err5);<a name="line.3522"></a> +<span class="sourceLineNo">3523</span> } else {<a name="line.3523"></a> +<span class="sourceLineNo">3524</span> future.complete(result);<a name="line.3524"></a> +<span class="sourceLineNo">3525</span> }<a name="line.3525"></a> +<span class="sourceLineNo">3526</span> });<a name="line.3526"></a> +<span class="sourceLineNo">3527</span> }<a name="line.3527"></a> +<span class="sourceLineNo">3528</span> });<a name="line.3528"></a> +<span class="sourceLineNo">3529</span> });<a name="line.3529"></a> +<span class="sourceLineNo">3530</span> });<a name="line.3530"></a> +<span class="sourceLineNo">3531</span> return future;<a name="line.3531"></a> +<span class="sourceLineNo">3532</span> }<a name="line.3532"></a> +<span class="sourceLineNo">3533</span><a name="line.3533"></a> +<span class="sourceLineNo">3534</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3534"></a> +<span class="sourceLineNo">3535</span> List<RegionInfo> hris) {<a name="line.3535"></a> +<span class="sourceLineNo">3536</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3536"></a> +<span class="sourceLineNo">3537</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3537"></a> +<span class="sourceLineNo">3538</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3538"></a> +<span class="sourceLineNo">3539</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a> +<span class="sourceLineNo">3540</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a> +<span class="sourceLineNo">3541</span> .serverName(serverName).call();<a name="line.3541"></a> +<span class="sourceLineNo">3542</span> }<a name="line.3542"></a> +<span class="sourceLineNo">3543</span>}<a name="line.3543"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.CreateTableProcedureBiConsumer.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.CreateTableProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.CreateTableProcedureBiConsumer.html index e63cd50..d8c0d2b 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.CreateTableProcedureBiConsumer.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.CreateTableProcedureBiConsumer.html @@ -422,7 +422,7 @@ <span class="sourceLineNo">414</span> }<a name="line.414"></a> <span class="sourceLineNo">415</span><a name="line.415"></a> <span class="sourceLineNo">416</span> /**<a name="line.416"></a> -<span class="sourceLineNo">417</span> * {@link #listTables(boolean)}<a name="line.417"></a> +<span class="sourceLineNo">417</span> * {@link #listTableDescriptors(boolean)}<a name="line.417"></a> <span class="sourceLineNo">418</span> */<a name="line.418"></a> <span class="sourceLineNo">419</span> @Override<a name="line.419"></a> <span class="sourceLineNo">420</span> public CompletableFuture<List<TableDescriptor>> listTableDescriptors(Pattern pattern,<a name="line.420"></a> @@ -3476,16 +3476,79 @@ <span class="sourceLineNo">3468</span> return future;<a name="line.3468"></a> <span class="sourceLineNo">3469</span> }<a name="line.3469"></a> <span class="sourceLineNo">3470</span><a name="line.3470"></a> -<span class="sourceLineNo">3471</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3471"></a> -<span class="sourceLineNo">3472</span> List<RegionInfo> hris) {<a name="line.3472"></a> -<span class="sourceLineNo">3473</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3473"></a> -<span class="sourceLineNo">3474</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3474"></a> -<span class="sourceLineNo">3475</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3475"></a> -<span class="sourceLineNo">3476</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a> -<span class="sourceLineNo">3477</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a> -<span class="sourceLineNo">3478</span> .serverName(serverName).call();<a name="line.3478"></a> -<span class="sourceLineNo">3479</span> }<a name="line.3479"></a> -<span class="sourceLineNo">3480</span>}<a name="line.3480"></a> +<span class="sourceLineNo">3471</span> @Override<a name="line.3471"></a> +<span class="sourceLineNo">3472</span> public CompletableFuture<Void> cloneTableSchema(TableName tableName, TableName newTableName,<a name="line.3472"></a> +<span class="sourceLineNo">3473</span> boolean preserveSplits) {<a name="line.3473"></a> +<span class="sourceLineNo">3474</span> CompletableFuture<Void> future = new CompletableFuture<>();<a name="line.3474"></a> +<span class="sourceLineNo">3475</span> tableExists(tableName).whenComplete(<a name="line.3475"></a> +<span class="sourceLineNo">3476</span> (exist, err) -> {<a name="line.3476"></a> +<span class="sourceLineNo">3477</span> if (err != null) {<a name="line.3477"></a> +<span class="sourceLineNo">3478</span> future.completeExceptionally(err);<a name="line.3478"></a> +<span class="sourceLineNo">3479</span> return;<a name="line.3479"></a> +<span class="sourceLineNo">3480</span> }<a name="line.3480"></a> +<span class="sourceLineNo">3481</span> if (!exist) {<a name="line.3481"></a> +<span class="sourceLineNo">3482</span> future.completeExceptionally(new TableNotFoundException(tableName));<a name="line.3482"></a> +<span class="sourceLineNo">3483</span> return;<a name="line.3483"></a> +<span class="sourceLineNo">3484</span> }<a name="line.3484"></a> +<span class="sourceLineNo">3485</span> tableExists(newTableName).whenComplete(<a name="line.3485"></a> +<span class="sourceLineNo">3486</span> (exist1, err1) -> {<a name="line.3486"></a> +<span class="sourceLineNo">3487</span> if (err1 != null) {<a name="line.3487"></a> +<span class="sourceLineNo">3488</span> future.completeExceptionally(err1);<a name="line.3488"></a> +<span class="sourceLineNo">3489</span> return;<a name="line.3489"></a> +<span class="sourceLineNo">3490</span> }<a name="line.3490"></a> +<span class="sourceLineNo">3491</span> if (exist1) {<a name="line.3491"></a> +<span class="sourceLineNo">3492</span> future.completeExceptionally(new TableExistsException(newTableName));<a name="line.3492"></a> +<span class="sourceLineNo">3493</span> return;<a name="line.3493"></a> +<span class="sourceLineNo">3494</span> }<a name="line.3494"></a> +<span class="sourceLineNo">3495</span> getDescriptor(tableName).whenComplete(<a name="line.3495"></a> +<span class="sourceLineNo">3496</span> (tableDesc, err2) -> {<a name="line.3496"></a> +<span class="sourceLineNo">3497</span> if (err2 != null) {<a name="line.3497"></a> +<span class="sourceLineNo">3498</span> future.completeExceptionally(err2);<a name="line.3498"></a> +<span class="sourceLineNo">3499</span> return;<a name="line.3499"></a> +<span class="sourceLineNo">3500</span> }<a name="line.3500"></a> +<span class="sourceLineNo">3501</span> TableDescriptor newTableDesc<a name="line.3501"></a> +<span class="sourceLineNo">3502</span> = TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a> +<span class="sourceLineNo">3503</span> if (preserveSplits) {<a name="line.3503"></a> +<span class="sourceLineNo">3504</span> getTableSplits(tableName).whenComplete((splits, err3) -> {<a name="line.3504"></a> +<span class="sourceLineNo">3505</span> if (err3 != null) {<a name="line.3505"></a> +<span class="sourceLineNo">3506</span> future.completeExceptionally(err3);<a name="line.3506"></a> +<span class="sourceLineNo">3507</span> } else {<a name="line.3507"></a> +<span class="sourceLineNo">3508</span> createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a> +<span class="sourceLineNo">3509</span> (result, err4) -> {<a name="line.3509"></a> +<span class="sourceLineNo">3510</span> if (err4 != null) {<a name="line.3510"></a> +<span class="sourceLineNo">3511</span> future.completeExceptionally(err4);<a name="line.3511"></a> +<span class="sourceLineNo">3512</span> } else {<a name="line.3512"></a> +<span class="sourceLineNo">3513</span> future.complete(result);<a name="line.3513"></a> +<span class="sourceLineNo">3514</span> }<a name="line.3514"></a> +<span class="sourceLineNo">3515</span> });<a name="line.3515"></a> +<span class="sourceLineNo">3516</span> }<a name="line.3516"></a> +<span class="sourceLineNo">3517</span> });<a name="line.3517"></a> +<span class="sourceLineNo">3518</span> } else {<a name="line.3518"></a> +<span class="sourceLineNo">3519</span> createTable(newTableDesc).whenComplete(<a name="line.3519"></a> +<span class="sourceLineNo">3520</span> (result, err5) -> {<a name="line.3520"></a> +<span class="sourceLineNo">3521</span> if (err5 != null) {<a name="line.3521"></a> +<span class="sourceLineNo">3522</span> future.completeExceptionally(err5);<a name="line.3522"></a> +<span class="sourceLineNo">3523</span> } else {<a name="line.3523"></a> +<span class="sourceLineNo">3524</span> future.complete(result);<a name="line.3524"></a> +<span class="sourceLineNo">3525</span> }<a name="line.3525"></a> +<span class="sourceLineNo">3526</span> });<a name="line.3526"></a> +<span class="sourceLineNo">3527</span> }<a name="line.3527"></a> +<span class="sourceLineNo">3528</span> });<a name="line.3528"></a> +<span class="sourceLineNo">3529</span> });<a name="line.3529"></a> +<span class="sourceLineNo">3530</span> });<a name="line.3530"></a> +<span class="sourceLineNo">3531</span> return future;<a name="line.3531"></a> +<span class="sourceLineNo">3532</span> }<a name="line.3532"></a> +<span class="sourceLineNo">3533</span><a name="line.3533"></a> +<span class="sourceLineNo">3534</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3534"></a> +<span class="sourceLineNo">3535</span> List<RegionInfo> hris) {<a name="line.3535"></a> +<span class="sourceLineNo">3536</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3536"></a> +<span class="sourceLineNo">3537</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3537"></a> +<span class="sourceLineNo">3538</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3538"></a> +<span class="sourceLineNo">3539</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a> +<span class="sourceLineNo">3540</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a> +<span class="sourceLineNo">3541</span> .serverName(serverName).call();<a name="line.3541"></a> +<span class="sourceLineNo">3542</span> }<a name="line.3542"></a> +<span class="sourceLineNo">3543</span>}<a name="line.3543"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html index e63cd50..d8c0d2b 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html @@ -422,7 +422,7 @@ <span class="sourceLineNo">414</span> }<a name="line.414"></a> <span class="sourceLineNo">415</span><a name="line.415"></a> <span class="sourceLineNo">416</span> /**<a name="line.416"></a> -<span class="sourceLineNo">417</span> * {@link #listTables(boolean)}<a name="line.417"></a> +<span class="sourceLineNo">417</span> * {@link #listTableDescriptors(boolean)}<a name="line.417"></a> <span class="sourceLineNo">418</span> */<a name="line.418"></a> <span class="sourceLineNo">419</span> @Override<a name="line.419"></a> <span class="sourceLineNo">420</span> public CompletableFuture<List<TableDescriptor>> listTableDescriptors(Pattern pattern,<a name="line.420"></a> @@ -3476,16 +3476,79 @@ <span class="sourceLineNo">3468</span> return future;<a name="line.3468"></a> <span class="sourceLineNo">3469</span> }<a name="line.3469"></a> <span class="sourceLineNo">3470</span><a name="line.3470"></a> -<span class="sourceLineNo">3471</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3471"></a> -<span class="sourceLineNo">3472</span> List<RegionInfo> hris) {<a name="line.3472"></a> -<span class="sourceLineNo">3473</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3473"></a> -<span class="sourceLineNo">3474</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3474"></a> -<span class="sourceLineNo">3475</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3475"></a> -<span class="sourceLineNo">3476</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a> -<span class="sourceLineNo">3477</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a> -<span class="sourceLineNo">3478</span> .serverName(serverName).call();<a name="line.3478"></a> -<span class="sourceLineNo">3479</span> }<a name="line.3479"></a> -<span class="sourceLineNo">3480</span>}<a name="line.3480"></a> +<span class="sourceLineNo">3471</span> @Override<a name="line.3471"></a> +<span class="sourceLineNo">3472</span> public CompletableFuture<Void> cloneTableSchema(TableName tableName, TableName newTableName,<a name="line.3472"></a> +<span class="sourceLineNo">3473</span> boolean preserveSplits) {<a name="line.3473"></a> +<span class="sourceLineNo">3474</span> CompletableFuture<Void> future = new CompletableFuture<>();<a name="line.3474"></a> +<span class="sourceLineNo">3475</span> tableExists(tableName).whenComplete(<a name="line.3475"></a> +<span class="sourceLineNo">3476</span> (exist, err) -> {<a name="line.3476"></a> +<span class="sourceLineNo">3477</span> if (err != null) {<a name="line.3477"></a> +<span class="sourceLineNo">3478</span> future.completeExceptionally(err);<a name="line.3478"></a> +<span class="sourceLineNo">3479</span> return;<a name="line.3479"></a> +<span class="sourceLineNo">3480</span> }<a name="line.3480"></a> +<span class="sourceLineNo">3481</span> if (!exist) {<a name="line.3481"></a> +<span class="sourceLineNo">3482</span> future.completeExceptionally(new TableNotFoundException(tableName));<a name="line.3482"></a> +<span class="sourceLineNo">3483</span> return;<a name="line.3483"></a> +<span class="sourceLineNo">3484</span> }<a name="line.3484"></a> +<span class="sourceLineNo">3485</span> tableExists(newTableName).whenComplete(<a name="line.3485"></a> +<span class="sourceLineNo">3486</span> (exist1, err1) -> {<a name="line.3486"></a> +<span class="sourceLineNo">3487</span> if (err1 != null) {<a name="line.3487"></a> +<span class="sourceLineNo">3488</span> future.completeExceptionally(err1);<a name="line.3488"></a> +<span class="sourceLineNo">3489</span> return;<a name="line.3489"></a> +<span class="sourceLineNo">3490</span> }<a name="line.3490"></a> +<span class="sourceLineNo">3491</span> if (exist1) {<a name="line.3491"></a> +<span class="sourceLineNo">3492</span> future.completeExceptionally(new TableExistsException(newTableName));<a name="line.3492"></a> +<span class="sourceLineNo">3493</span> return;<a name="line.3493"></a> +<span class="sourceLineNo">3494</span> }<a name="line.3494"></a> +<span class="sourceLineNo">3495</span> getDescriptor(tableName).whenComplete(<a name="line.3495"></a> +<span class="sourceLineNo">3496</span> (tableDesc, err2) -> {<a name="line.3496"></a> +<span class="sourceLineNo">3497</span> if (err2 != null) {<a name="line.3497"></a> +<span class="sourceLineNo">3498</span> future.completeExceptionally(err2);<a name="line.3498"></a> +<span class="sourceLineNo">3499</span> return;<a name="line.3499"></a> +<span class="sourceLineNo">3500</span> }<a name="line.3500"></a> +<span class="sourceLineNo">3501</span> TableDescriptor newTableDesc<a name="line.3501"></a> +<span class="sourceLineNo">3502</span> = TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a> +<span class="sourceLineNo">3503</span> if (preserveSplits) {<a name="line.3503"></a> +<span class="sourceLineNo">3504</span> getTableSplits(tableName).whenComplete((splits, err3) -> {<a name="line.3504"></a> +<span class="sourceLineNo">3505</span> if (err3 != null) {<a name="line.3505"></a> +<span class="sourceLineNo">3506</span> future.completeExceptionally(err3);<a name="line.3506"></a> +<span class="sourceLineNo">3507</span> } else {<a name="line.3507"></a> +<span class="sourceLineNo">3508</span> createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a> +<span class="sourceLineNo">3509</span> (result, err4) -> {<a name="line.3509"></a> +<span class="sourceLineNo">3510</span> if (err4 != null) {<a name="line.3510"></a> +<span class="sourceLineNo">3511</span> future.completeExceptionally(err4);<a name="line.3511"></a> +<span class="sourceLineNo">3512</span> } else {<a name="line.3512"></a> +<span class="sourceLineNo">3513</span> future.complete(result);<a name="line.3513"></a> +<span class="sourceLineNo">3514</span> }<a name="line.3514"></a> +<span class="sourceLineNo">3515</span> });<a name="line.3515"></a> +<span class="sourceLineNo">3516</span> }<a name="line.3516"></a> +<span class="sourceLineNo">3517</span> });<a name="line.3517"></a> +<span class="sourceLineNo">3518</span> } else {<a name="line.3518"></a> +<span class="sourceLineNo">3519</span> createTable(newTableDesc).whenComplete(<a name="line.3519"></a> +<span class="sourceLineNo">3520</span> (result, err5) -> {<a name="line.3520"></a> +<span class="sourceLineNo">3521</span> if (err5 != null) {<a name="line.3521"></a> +<span class="sourceLineNo">3522</span> future.completeExceptionally(err5);<a name="line.3522"></a> +<span class="sourceLineNo">3523</span> } else {<a name="line.3523"></a> +<span class="sourceLineNo">3524</span> future.complete(result);<a name="line.3524"></a> +<span class="sourceLineNo">3525</span> }<a name="line.3525"></a> +<span class="sourceLineNo">3526</span> });<a name="line.3526"></a> +<span class="sourceLineNo">3527</span> }<a name="line.3527"></a> +<span class="sourceLineNo">3528</span> });<a name="line.3528"></a> +<span class="sourceLineNo">3529</span> });<a name="line.3529"></a> +<span class="sourceLineNo">3530</span> });<a name="line.3530"></a> +<span class="sourceLineNo">3531</span> return future;<a name="line.3531"></a> +<span class="sourceLineNo">3532</span> }<a name="line.3532"></a> +<span class="sourceLineNo">3533</span><a name="line.3533"></a> +<span class="sourceLineNo">3534</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3534"></a> +<span class="sourceLineNo">3535</span> List<RegionInfo> hris) {<a name="line.3535"></a> +<span class="sourceLineNo">3536</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3536"></a> +<span class="sourceLineNo">3537</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3537"></a> +<span class="sourceLineNo">3538</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3538"></a> +<span class="sourceLineNo">3539</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a> +<span class="sourceLineNo">3540</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a> +<span class="sourceLineNo">3541</span> .serverName(serverName).call();<a name="line.3541"></a> +<span class="sourceLineNo">3542</span> }<a name="line.3542"></a> +<span class="sourceLineNo">3543</span>}<a name="line.3543"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html index e63cd50..d8c0d2b 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html @@ -422,7 +422,7 @@ <span class="sourceLineNo">414</span> }<a name="line.414"></a> <span class="sourceLineNo">415</span><a name="line.415"></a> <span class="sourceLineNo">416</span> /**<a name="line.416"></a> -<span class="sourceLineNo">417</span> * {@link #listTables(boolean)}<a name="line.417"></a> +<span class="sourceLineNo">417</span> * {@link #listTableDescriptors(boolean)}<a name="line.417"></a> <span class="sourceLineNo">418</span> */<a name="line.418"></a> <span class="sourceLineNo">419</span> @Override<a name="line.419"></a> <span class="sourceLineNo">420</span> public CompletableFuture<List<TableDescriptor>> listTableDescriptors(Pattern pattern,<a name="line.420"></a> @@ -3476,16 +3476,79 @@ <span class="sourceLineNo">3468</span> return future;<a name="line.3468"></a> <span class="sourceLineNo">3469</span> }<a name="line.3469"></a> <span class="sourceLineNo">3470</span><a name="line.3470"></a> -<span class="sourceLineNo">3471</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3471"></a> -<span class="sourceLineNo">3472</span> List<RegionInfo> hris) {<a name="line.3472"></a> -<span class="sourceLineNo">3473</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3473"></a> -<span class="sourceLineNo">3474</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3474"></a> -<span class="sourceLineNo">3475</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3475"></a> -<span class="sourceLineNo">3476</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a> -<span class="sourceLineNo">3477</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a> -<span class="sourceLineNo">3478</span> .serverName(serverName).call();<a name="line.3478"></a> -<span class="sourceLineNo">3479</span> }<a name="line.3479"></a> -<span class="sourceLineNo">3480</span>}<a name="line.3480"></a> +<span class="sourceLineNo">3471</span> @Override<a name="line.3471"></a> +<span class="sourceLineNo">3472</span> public CompletableFuture<Void> cloneTableSchema(TableName tableName, TableName newTableName,<a name="line.3472"></a> +<span class="sourceLineNo">3473</span> boolean preserveSplits) {<a name="line.3473"></a> +<span class="sourceLineNo">3474</span> CompletableFuture<Void> future = new CompletableFuture<>();<a name="line.3474"></a> +<span class="sourceLineNo">3475</span> tableExists(tableName).whenComplete(<a name="line.3475"></a> +<span class="sourceLineNo">3476</span> (exist, err) -> {<a name="line.3476"></a> +<span class="sourceLineNo">3477</span> if (err != null) {<a name="line.3477"></a> +<span class="sourceLineNo">3478</span> future.completeExceptionally(err);<a name="line.3478"></a> +<span class="sourceLineNo">3479</span> return;<a name="line.3479"></a> +<span class="sourceLineNo">3480</span> }<a name="line.3480"></a> +<span class="sourceLineNo">3481</span> if (!exist) {<a name="line.3481"></a> +<span class="sourceLineNo">3482</span> future.completeExceptionally(new TableNotFoundException(tableName));<a name="line.3482"></a> +<span class="sourceLineNo">3483</span> return;<a name="line.3483"></a> +<span class="sourceLineNo">3484</span> }<a name="line.3484"></a> +<span class="sourceLineNo">3485</span> tableExists(newTableName).whenComplete(<a name="line.3485"></a> +<span class="sourceLineNo">3486</span> (exist1, err1) -> {<a name="line.3486"></a> +<span class="sourceLineNo">3487</span> if (err1 != null) {<a name="line.3487"></a> +<span class="sourceLineNo">3488</span> future.completeExceptionally(err1);<a name="line.3488"></a> +<span class="sourceLineNo">3489</span> return;<a name="line.3489"></a> +<span class="sourceLineNo">3490</span> }<a name="line.3490"></a> +<span class="sourceLineNo">3491</span> if (exist1) {<a name="line.3491"></a> +<span class="sourceLineNo">3492</span> future.completeExceptionally(new TableExistsException(newTableName));<a name="line.3492"></a> +<span class="sourceLineNo">3493</span> return;<a name="line.3493"></a> +<span class="sourceLineNo">3494</span> }<a name="line.3494"></a> +<span class="sourceLineNo">3495</span> getDescriptor(tableName).whenComplete(<a name="line.3495"></a> +<span class="sourceLineNo">3496</span> (tableDesc, err2) -> {<a name="line.3496"></a> +<span class="sourceLineNo">3497</span> if (err2 != null) {<a name="line.3497"></a> +<span class="sourceLineNo">3498</span> future.completeExceptionally(err2);<a name="line.3498"></a> +<span class="sourceLineNo">3499</span> return;<a name="line.3499"></a> +<span class="sourceLineNo">3500</span> }<a name="line.3500"></a> +<span class="sourceLineNo">3501</span> TableDescriptor newTableDesc<a name="line.3501"></a> +<span class="sourceLineNo">3502</span> = TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a> +<span class="sourceLineNo">3503</span> if (preserveSplits) {<a name="line.3503"></a> +<span class="sourceLineNo">3504</span> getTableSplits(tableName).whenComplete((splits, err3) -> {<a name="line.3504"></a> +<span class="sourceLineNo">3505</span> if (err3 != null) {<a name="line.3505"></a> +<span class="sourceLineNo">3506</span> future.completeExceptionally(err3);<a name="line.3506"></a> +<span class="sourceLineNo">3507</span> } else {<a name="line.3507"></a> +<span class="sourceLineNo">3508</span> createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a> +<span class="sourceLineNo">3509</span> (result, err4) -> {<a name="line.3509"></a> +<span class="sourceLineNo">3510</span> if (err4 != null) {<a name="line.3510"></a> +<span class="sourceLineNo">3511</span> future.completeExceptionally(err4);<a name="line.3511"></a> +<span class="sourceLineNo">3512</span> } else {<a name="line.3512"></a> +<span class="sourceLineNo">3513</span> future.complete(result);<a name="line.3513"></a> +<span class="sourceLineNo">3514</span> }<a name="line.3514"></a> +<span class="sourceLineNo">3515</span> });<a name="line.3515"></a> +<span class="sourceLineNo">3516</span> }<a name="line.3516"></a> +<span class="sourceLineNo">3517</span> });<a name="line.3517"></a> +<span class="sourceLineNo">3518</span> } else {<a name="line.3518"></a> +<span class="sourceLineNo">3519</span> createTable(newTableDesc).whenComplete(<a name="line.3519"></a> +<span class="sourceLineNo">3520</span> (result, err5) -> {<a name="line.3520"></a> +<span class="sourceLineNo">3521</span> if (err5 != null) {<a name="line.3521"></a> +<span class="sourceLineNo">3522</span> future.completeExceptionally(err5);<a name="line.3522"></a> +<span class="sourceLineNo">3523</span> } else {<a name="line.3523"></a> +<span class="sourceLineNo">3524</span> future.complete(result);<a name="line.3524"></a> +<span class="sourceLineNo">3525</span> }<a name="line.3525"></a> +<span class="sourceLineNo">3526</span> });<a name="line.3526"></a> +<span class="sourceLineNo">3527</span> }<a name="line.3527"></a> +<span class="sourceLineNo">3528</span> });<a name="line.3528"></a> +<span class="sourceLineNo">3529</span> });<a name="line.3529"></a> +<span class="sourceLineNo">3530</span> });<a name="line.3530"></a> +<span class="sourceLineNo">3531</span> return future;<a name="line.3531"></a> +<span class="sourceLineNo">3532</span> }<a name="line.3532"></a> +<span class="sourceLineNo">3533</span><a name="line.3533"></a> +<span class="sourceLineNo">3534</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3534"></a> +<span class="sourceLineNo">3535</span> List<RegionInfo> hris) {<a name="line.3535"></a> +<span class="sourceLineNo">3536</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3536"></a> +<span class="sourceLineNo">3537</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3537"></a> +<span class="sourceLineNo">3538</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3538"></a> +<span class="sourceLineNo">3539</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a> +<span class="sourceLineNo">3540</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a> +<span class="sourceLineNo">3541</span> .serverName(serverName).call();<a name="line.3541"></a> +<span class="sourceLineNo">3542</span> }<a name="line.3542"></a> +<span class="sourceLineNo">3543</span>}<a name="line.3543"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html index e63cd50..d8c0d2b 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html @@ -422,7 +422,7 @@ <span class="sourceLineNo">414</span> }<a name="line.414"></a> <span class="sourceLineNo">415</span><a name="line.415"></a> <span class="sourceLineNo">416</span> /**<a name="line.416"></a> -<span class="sourceLineNo">417</span> * {@link #listTables(boolean)}<a name="line.417"></a> +<span class="sourceLineNo">417</span> * {@link #listTableDescriptors(boolean)}<a name="line.417"></a> <span class="sourceLineNo">418</span> */<a name="line.418"></a> <span class="sourceLineNo">419</span> @Override<a name="line.419"></a> <span class="sourceLineNo">420</span> public CompletableFuture<List<TableDescriptor>> listTableDescriptors(Pattern pattern,<a name="line.420"></a> @@ -3476,16 +3476,79 @@ <span class="sourceLineNo">3468</span> return future;<a name="line.3468"></a> <span class="sourceLineNo">3469</span> }<a name="line.3469"></a> <span class="sourceLineNo">3470</span><a name="line.3470"></a> -<span class="sourceLineNo">3471</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3471"></a> -<span class="sourceLineNo">3472</span> List<RegionInfo> hris) {<a name="line.3472"></a> -<span class="sourceLineNo">3473</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3473"></a> -<span class="sourceLineNo">3474</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3474"></a> -<span class="sourceLineNo">3475</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3475"></a> -<span class="sourceLineNo">3476</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a> -<span class="sourceLineNo">3477</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a> -<span class="sourceLineNo">3478</span> .serverName(serverName).call();<a name="line.3478"></a> -<span class="sourceLineNo">3479</span> }<a name="line.3479"></a> -<span class="sourceLineNo">3480</span>}<a name="line.3480"></a> +<span class="sourceLineNo">3471</span> @Override<a name="line.3471"></a> +<span class="sourceLineNo">3472</span> public CompletableFuture<Void> cloneTableSchema(TableName tableName, TableName newTableName,<a name="line.3472"></a> +<span class="sourceLineNo">3473</span> boolean preserveSplits) {<a name="line.3473"></a> +<span class="sourceLineNo">3474</span> CompletableFuture<Void> future = new CompletableFuture<>();<a name="line.3474"></a> +<span class="sourceLineNo">3475</span> tableExists(tableName).whenComplete(<a name="line.3475"></a> +<span class="sourceLineNo">3476</span> (exist, err) -> {<a name="line.3476"></a> +<span class="sourceLineNo">3477</span> if (err != null) {<a name="line.3477"></a> +<span class="sourceLineNo">3478</span> future.completeExceptionally(err);<a name="line.3478"></a> +<span class="sourceLineNo">3479</span> return;<a name="line.3479"></a> +<span class="sourceLineNo">3480</span> }<a name="line.3480"></a> +<span class="sourceLineNo">3481</span> if (!exist) {<a name="line.3481"></a> +<span class="sourceLineNo">3482</span> future.completeExceptionally(new TableNotFoundException(tableName));<a name="line.3482"></a> +<span class="sourceLineNo">3483</span> return;<a name="line.3483"></a> +<span class="sourceLineNo">3484</span> }<a name="line.3484"></a> +<span class="sourceLineNo">3485</span> tableExists(newTableName).whenComplete(<a name="line.3485"></a> +<span class="sourceLineNo">3486</span> (exist1, err1) -> {<a name="line.3486"></a> +<span class="sourceLineNo">3487</span> if (err1 != null) {<a name="line.3487"></a> +<span class="sourceLineNo">3488</span> future.completeExceptionally(err1);<a name="line.3488"></a> +<span class="sourceLineNo">3489</span> return;<a name="line.3489"></a> +<span class="sourceLineNo">3490</span> }<a name="line.3490"></a> +<span class="sourceLineNo">3491</span> if (exist1) {<a name="line.3491"></a> +<span class="sourceLineNo">3492</span> future.completeExceptionally(new TableExistsException(newTableName));<a name="line.3492"></a> +<span class="sourceLineNo">3493</span> return;<a name="line.3493"></a> +<span class="sourceLineNo">3494</span> }<a name="line.3494"></a> +<span class="sourceLineNo">3495</span> getDescriptor(tableName).whenComplete(<a name="line.3495"></a> +<span class="sourceLineNo">3496</span> (tableDesc, err2) -> {<a name="line.3496"></a> +<span class="sourceLineNo">3497</span> if (err2 != null) {<a name="line.3497"></a> +<span class="sourceLineNo">3498</span> future.completeExceptionally(err2);<a name="line.3498"></a> +<span class="sourceLineNo">3499</span> return;<a name="line.3499"></a> +<span class="sourceLineNo">3500</span> }<a name="line.3500"></a> +<span class="sourceLineNo">3501</span> TableDescriptor newTableDesc<a name="line.3501"></a> +<span class="sourceLineNo">3502</span> = TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a> +<span class="sourceLineNo">3503</span> if (preserveSplits) {<a name="line.3503"></a> +<span class="sourceLineNo">3504</span> getTableSplits(tableName).whenComplete((splits, err3) -> {<a name="line.3504"></a> +<span class="sourceLineNo">3505</span> if (err3 != null) {<a name="line.3505"></a> +<span class="sourceLineNo">3506</span> future.completeExceptionally(err3);<a name="line.3506"></a> +<span class="sourceLineNo">3507</span> } else {<a name="line.3507"></a> +<span class="sourceLineNo">3508</span> createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a> +<span class="sourceLineNo">3509</span> (result, err4) -> {<a name="line.3509"></a> +<span class="sourceLineNo">3510</span> if (err4 != null) {<a name="line.3510"></a> +<span class="sourceLineNo">3511</span> future.completeExceptionally(err4);<a name="line.3511"></a> +<span class="sourceLineNo">3512</span> } else {<a name="line.3512"></a> +<span class="sourceLineNo">3513</span> future.complete(result);<a name="line.3513"></a> +<span class="sourceLineNo">3514</span> }<a name="line.3514"></a> +<span class="sourceLineNo">3515</span> });<a name="line.3515"></a> +<span class="sourceLineNo">3516</span> }<a name="line.3516"></a> +<span class="sourceLineNo">3517</span> });<a name="line.3517"></a> +<span class="sourceLineNo">3518</span> } else {<a name="line.3518"></a> +<span class="sourceLineNo">3519</span> createTable(newTableDesc).whenComplete(<a name="line.3519"></a> +<span class="sourceLineNo">3520</span> (result, err5) -> {<a name="line.3520"></a> +<span class="sourceLineNo">3521</span> if (err5 != null) {<a name="line.3521"></a> +<span class="sourceLineNo">3522</span> future.completeExceptionally(err5);<a name="line.3522"></a> +<span class="sourceLineNo">3523</span> } else {<a name="line.3523"></a> +<span class="sourceLineNo">3524</span> future.complete(result);<a name="line.3524"></a> +<span class="sourceLineNo">3525</span> }<a name="line.3525"></a> +<span class="sourceLineNo">3526</span> });<a name="line.3526"></a> +<span class="sourceLineNo">3527</span> }<a name="line.3527"></a> +<span class="sourceLineNo">3528</span> });<a name="line.3528"></a> +<span class="sourceLineNo">3529</span> });<a name="line.3529"></a> +<span class="sourceLineNo">3530</span> });<a name="line.3530"></a> +<span class="sourceLineNo">3531</span> return future;<a name="line.3531"></a> +<span class="sourceLineNo">3532</span> }<a name="line.3532"></a> +<span class="sourceLineNo">3533</span><a name="line.3533"></a> +<span class="sourceLineNo">3534</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3534"></a> +<span class="sourceLineNo">3535</span> List<RegionInfo> hris) {<a name="line.3535"></a> +<span class="sourceLineNo">3536</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3536"></a> +<span class="sourceLineNo">3537</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3537"></a> +<span class="sourceLineNo">3538</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3538"></a> +<span class="sourceLineNo">3539</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a> +<span class="sourceLineNo">3540</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a> +<span class="sourceLineNo">3541</span> .serverName(serverName).call();<a name="line.3541"></a> +<span class="sourceLineNo">3542</span> }<a name="line.3542"></a> +<span class="sourceLineNo">3543</span>}<a name="line.3543"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DisableTableProcedureBiConsumer.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DisableTableProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DisableTableProcedureBiConsumer.html index e63cd50..d8c0d2b 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DisableTableProcedureBiConsumer.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.DisableTableProcedureBiConsumer.html @@ -422,7 +422,7 @@ <span class="sourceLineNo">414</span> }<a name="line.414"></a> <span class="sourceLineNo">415</span><a name="line.415"></a> <span class="sourceLineNo">416</span> /**<a name="line.416"></a> -<span class="sourceLineNo">417</span> * {@link #listTables(boolean)}<a name="line.417"></a> +<span class="sourceLineNo">417</span> * {@link #listTableDescriptors(boolean)}<a name="line.417"></a> <span class="sourceLineNo">418</span> */<a name="line.418"></a> <span class="sourceLineNo">419</span> @Override<a name="line.419"></a> <span class="sourceLineNo">420</span> public CompletableFuture<List<TableDescriptor>> listTableDescriptors(Pattern pattern,<a name="line.420"></a> @@ -3476,16 +3476,79 @@ <span class="sourceLineNo">3468</span> return future;<a name="line.3468"></a> <span class="sourceLineNo">3469</span> }<a name="line.3469"></a> <span class="sourceLineNo">3470</span><a name="line.3470"></a> -<span class="sourceLineNo">3471</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3471"></a> -<span class="sourceLineNo">3472</span> List<RegionInfo> hris) {<a name="line.3472"></a> -<span class="sourceLineNo">3473</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3473"></a> -<span class="sourceLineNo">3474</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3474"></a> -<span class="sourceLineNo">3475</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3475"></a> -<span class="sourceLineNo">3476</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a> -<span class="sourceLineNo">3477</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a> -<span class="sourceLineNo">3478</span> .serverName(serverName).call();<a name="line.3478"></a> -<span class="sourceLineNo">3479</span> }<a name="line.3479"></a> -<span class="sourceLineNo">3480</span>}<a name="line.3480"></a> +<span class="sourceLineNo">3471</span> @Override<a name="line.3471"></a> +<span class="sourceLineNo">3472</span> public CompletableFuture<Void> cloneTableSchema(TableName tableName, TableName newTableName,<a name="line.3472"></a> +<span class="sourceLineNo">3473</span> boolean preserveSplits) {<a name="line.3473"></a> +<span class="sourceLineNo">3474</span> CompletableFuture<Void> future = new CompletableFuture<>();<a name="line.3474"></a> +<span class="sourceLineNo">3475</span> tableExists(tableName).whenComplete(<a name="line.3475"></a> +<span class="sourceLineNo">3476</span> (exist, err) -> {<a name="line.3476"></a> +<span class="sourceLineNo">3477</span> if (err != null) {<a name="line.3477"></a> +<span class="sourceLineNo">3478</span> future.completeExceptionally(err);<a name="line.3478"></a> +<span class="sourceLineNo">3479</span> return;<a name="line.3479"></a> +<span class="sourceLineNo">3480</span> }<a name="line.3480"></a> +<span class="sourceLineNo">3481</span> if (!exist) {<a name="line.3481"></a> +<span class="sourceLineNo">3482</span> future.completeExceptionally(new TableNotFoundException(tableName));<a name="line.3482"></a> +<span class="sourceLineNo">3483</span> return;<a name="line.3483"></a> +<span class="sourceLineNo">3484</span> }<a name="line.3484"></a> +<span class="sourceLineNo">3485</span> tableExists(newTableName).whenComplete(<a name="line.3485"></a> +<span class="sourceLineNo">3486</span> (exist1, err1) -> {<a name="line.3486"></a> +<span class="sourceLineNo">3487</span> if (err1 != null) {<a name="line.3487"></a> +<span class="sourceLineNo">3488</span> future.completeExceptionally(err1);<a name="line.3488"></a> +<span class="sourceLineNo">3489</span> return;<a name="line.3489"></a> +<span class="sourceLineNo">3490</span> }<a name="line.3490"></a> +<span class="sourceLineNo">3491</span> if (exist1) {<a name="line.3491"></a> +<span class="sourceLineNo">3492</span> future.completeExceptionally(new TableExistsException(newTableName));<a name="line.3492"></a> +<span class="sourceLineNo">3493</span> return;<a name="line.3493"></a> +<span class="sourceLineNo">3494</span> }<a name="line.3494"></a> +<span class="sourceLineNo">3495</span> getDescriptor(tableName).whenComplete(<a name="line.3495"></a> +<span class="sourceLineNo">3496</span> (tableDesc, err2) -> {<a name="line.3496"></a> +<span class="sourceLineNo">3497</span> if (err2 != null) {<a name="line.3497"></a> +<span class="sourceLineNo">3498</span> future.completeExceptionally(err2);<a name="line.3498"></a> +<span class="sourceLineNo">3499</span> return;<a name="line.3499"></a> +<span class="sourceLineNo">3500</span> }<a name="line.3500"></a> +<span class="sourceLineNo">3501</span> TableDescriptor newTableDesc<a name="line.3501"></a> +<span class="sourceLineNo">3502</span> = TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a> +<span class="sourceLineNo">3503</span> if (preserveSplits) {<a name="line.3503"></a> +<span class="sourceLineNo">3504</span> getTableSplits(tableName).whenComplete((splits, err3) -> {<a name="line.3504"></a> +<span class="sourceLineNo">3505</span> if (err3 != null) {<a name="line.3505"></a> +<span class="sourceLineNo">3506</span> future.completeExceptionally(err3);<a name="line.3506"></a> +<span class="sourceLineNo">3507</span> } else {<a name="line.3507"></a> +<span class="sourceLineNo">3508</span> createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a> +<span class="sourceLineNo">3509</span> (result, err4) -> {<a name="line.3509"></a> +<span class="sourceLineNo">3510</span> if (err4 != null) {<a name="line.3510"></a> +<span class="sourceLineNo">3511</span> future.completeExceptionally(err4);<a name="line.3511"></a> +<span class="sourceLineNo">3512</span> } else {<a name="line.3512"></a> +<span class="sourceLineNo">3513</span> future.complete(result);<a name="line.3513"></a> +<span class="sourceLineNo">3514</span> }<a name="line.3514"></a> +<span class="sourceLineNo">3515</span> });<a name="line.3515"></a> +<span class="sourceLineNo">3516</span> }<a name="line.3516"></a> +<span class="sourceLineNo">3517</span> });<a name="line.3517"></a> +<span class="sourceLineNo">3518</span> } else {<a name="line.3518"></a> +<span class="sourceLineNo">3519</span> createTable(newTableDesc).whenComplete(<a name="line.3519"></a> +<span class="sourceLineNo">3520</span> (result, err5) -> {<a name="line.3520"></a> +<span class="sourceLineNo">3521</span> if (err5 != null) {<a name="line.3521"></a> +<span class="sourceLineNo">3522</span> future.completeExceptionally(err5);<a name="line.3522"></a> +<span class="sourceLineNo">3523</span> } else {<a name="line.3523"></a> +<span class="sourceLineNo">3524</span> future.complete(result);<a name="line.3524"></a> +<span class="sourceLineNo">3525</span> }<a name="line.3525"></a> +<span class="sourceLineNo">3526</span> });<a name="line.3526"></a> +<span class="sourceLineNo">3527</span> }<a name="line.3527"></a> +<span class="sourceLineNo">3528</span> });<a name="line.3528"></a> +<span class="sourceLineNo">3529</span> });<a name="line.3529"></a> +<span class="sourceLineNo">3530</span> });<a name="line.3530"></a> +<span class="sourceLineNo">3531</span> return future;<a name="line.3531"></a> +<span class="sourceLineNo">3532</span> }<a name="line.3532"></a> +<span class="sourceLineNo">3533</span><a name="line.3533"></a> +<span class="sourceLineNo">3534</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3534"></a> +<span class="sourceLineNo">3535</span> List<RegionInfo> hris) {<a name="line.3535"></a> +<span class="sourceLineNo">3536</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3536"></a> +<span class="sourceLineNo">3537</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3537"></a> +<span class="sourceLineNo">3538</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3538"></a> +<span class="sourceLineNo">3539</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a> +<span class="sourceLineNo">3540</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a> +<span class="sourceLineNo">3541</span> .serverName(serverName).call();<a name="line.3541"></a> +<span class="sourceLineNo">3542</span> }<a name="line.3542"></a> +<span class="sourceLineNo">3543</span>}<a name="line.3543"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.EnableTableProcedureBiConsumer.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.EnableTableProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.EnableTableProcedureBiConsumer.html index e63cd50..d8c0d2b 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.EnableTableProcedureBiConsumer.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.EnableTableProcedureBiConsumer.html @@ -422,7 +422,7 @@ <span class="sourceLineNo">414</span> }<a name="line.414"></a> <span class="sourceLineNo">415</span><a name="line.415"></a> <span class="sourceLineNo">416</span> /**<a name="line.416"></a> -<span class="sourceLineNo">417</span> * {@link #listTables(boolean)}<a name="line.417"></a> +<span class="sourceLineNo">417</span> * {@link #listTableDescriptors(boolean)}<a name="line.417"></a> <span class="sourceLineNo">418</span> */<a name="line.418"></a> <span class="sourceLineNo">419</span> @Override<a name="line.419"></a> <span class="sourceLineNo">420</span> public CompletableFuture<List<TableDescriptor>> listTableDescriptors(Pattern pattern,<a name="line.420"></a> @@ -3476,16 +3476,79 @@ <span class="sourceLineNo">3468</span> return future;<a name="line.3468"></a> <span class="sourceLineNo">3469</span> }<a name="line.3469"></a> <span class="sourceLineNo">3470</span><a name="line.3470"></a> -<span class="sourceLineNo">3471</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3471"></a> -<span class="sourceLineNo">3472</span> List<RegionInfo> hris) {<a name="line.3472"></a> -<span class="sourceLineNo">3473</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3473"></a> -<span class="sourceLineNo">3474</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3474"></a> -<span class="sourceLineNo">3475</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3475"></a> -<span class="sourceLineNo">3476</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a> -<span class="sourceLineNo">3477</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a> -<span class="sourceLineNo">3478</span> .serverName(serverName).call();<a name="line.3478"></a> -<span class="sourceLineNo">3479</span> }<a name="line.3479"></a> -<span class="sourceLineNo">3480</span>}<a name="line.3480"></a> +<span class="sourceLineNo">3471</span> @Override<a name="line.3471"></a> +<span class="sourceLineNo">3472</span> public CompletableFuture<Void> cloneTableSchema(TableName tableName, TableName newTableName,<a name="line.3472"></a> +<span class="sourceLineNo">3473</span> boolean preserveSplits) {<a name="line.3473"></a> +<span class="sourceLineNo">3474</span> CompletableFuture<Void> future = new CompletableFuture<>();<a name="line.3474"></a> +<span class="sourceLineNo">3475</span> tableExists(tableName).whenComplete(<a name="line.3475"></a> +<span class="sourceLineNo">3476</span> (exist, err) -> {<a name="line.3476"></a> +<span class="sourceLineNo">3477</span> if (err != null) {<a name="line.3477"></a> +<span class="sourceLineNo">3478</span> future.completeExceptionally(err);<a name="line.3478"></a> +<span class="sourceLineNo">3479</span> return;<a name="line.3479"></a> +<span class="sourceLineNo">3480</span> }<a name="line.3480"></a> +<span class="sourceLineNo">3481</span> if (!exist) {<a name="line.3481"></a> +<span class="sourceLineNo">3482</span> future.completeExceptionally(new TableNotFoundException(tableName));<a name="line.3482"></a> +<span class="sourceLineNo">3483</span> return;<a name="line.3483"></a> +<span class="sourceLineNo">3484</span> }<a name="line.3484"></a> +<span class="sourceLineNo">3485</span> tableExists(newTableName).whenComplete(<a name="line.3485"></a> +<span class="sourceLineNo">3486</span> (exist1, err1) -> {<a name="line.3486"></a> +<span class="sourceLineNo">3487</span> if (err1 != null) {<a name="line.3487"></a> +<span class="sourceLineNo">3488</span> future.completeExceptionally(err1);<a name="line.3488"></a> +<span class="sourceLineNo">3489</span> return;<a name="line.3489"></a> +<span class="sourceLineNo">3490</span> }<a name="line.3490"></a> +<span class="sourceLineNo">3491</span> if (exist1) {<a name="line.3491"></a> +<span class="sourceLineNo">3492</span> future.completeExceptionally(new TableExistsException(newTableName));<a name="line.3492"></a> +<span class="sourceLineNo">3493</span> return;<a name="line.3493"></a> +<span class="sourceLineNo">3494</span> }<a name="line.3494"></a> +<span class="sourceLineNo">3495</span> getDescriptor(tableName).whenComplete(<a name="line.3495"></a> +<span class="sourceLineNo">3496</span> (tableDesc, err2) -> {<a name="line.3496"></a> +<span class="sourceLineNo">3497</span> if (err2 != null) {<a name="line.3497"></a> +<span class="sourceLineNo">3498</span> future.completeExceptionally(err2);<a name="line.3498"></a> +<span class="sourceLineNo">3499</span> return;<a name="line.3499"></a> +<span class="sourceLineNo">3500</span> }<a name="line.3500"></a> +<span class="sourceLineNo">3501</span> TableDescriptor newTableDesc<a name="line.3501"></a> +<span class="sourceLineNo">3502</span> = TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a> +<span class="sourceLineNo">3503</span> if (preserveSplits) {<a name="line.3503"></a> +<span class="sourceLineNo">3504</span> getTableSplits(tableName).whenComplete((splits, err3) -> {<a name="line.3504"></a> +<span class="sourceLineNo">3505</span> if (err3 != null) {<a name="line.3505"></a> +<span class="sourceLineNo">3506</span> future.completeExceptionally(err3);<a name="line.3506"></a> +<span class="sourceLineNo">3507</span> } else {<a name="line.3507"></a> +<span class="sourceLineNo">3508</span> createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a> +<span class="sourceLineNo">3509</span> (result, err4) -> {<a name="line.3509"></a> +<span class="sourceLineNo">3510</span> if (err4 != null) {<a name="line.3510"></a> +<span class="sourceLineNo">3511</span> future.completeExceptionally(err4);<a name="line.3511"></a> +<span class="sourceLineNo">3512</span> } else {<a name="line.3512"></a> +<span class="sourceLineNo">3513</span> future.complete(result);<a name="line.3513"></a> +<span class="sourceLineNo">3514</span> }<a name="line.3514"></a> +<span class="sourceLineNo">3515</span> });<a name="line.3515"></a> +<span class="sourceLineNo">3516</span> }<a name="line.3516"></a> +<span class="sourceLineNo">3517</span> });<a name="line.3517"></a> +<span class="sourceLineNo">3518</span> } else {<a name="line.3518"></a> +<span class="sourceLineNo">3519</span> createTable(newTableDesc).whenComplete(<a name="line.3519"></a> +<span class="sourceLineNo">3520</span> (result, err5) -> {<a name="line.3520"></a> +<span class="sourceLineNo">3521</span> if (err5 != null) {<a name="line.3521"></a> +<span class="sourceLineNo">3522</span> future.completeExceptionally(err5);<a name="line.3522"></a> +<span class="sourceLineNo">3523</span> } else {<a name="line.3523"></a> +<span class="sourceLineNo">3524</span> future.complete(result);<a name="line.3524"></a> +<span class="sourceLineNo">3525</span> }<a name="line.3525"></a> +<span class="sourceLineNo">3526</span> });<a name="line.3526"></a> +<span class="sourceLineNo">3527</span> }<a name="line.3527"></a> +<span class="sourceLineNo">3528</span> });<a name="line.3528"></a> +<span class="sourceLineNo">3529</span> });<a name="line.3529"></a> +<span class="sourceLineNo">3530</span> });<a name="line.3530"></a> +<span class="sourceLineNo">3531</span> return future;<a name="line.3531"></a> +<span class="sourceLineNo">3532</span> }<a name="line.3532"></a> +<span class="sourceLineNo">3533</span><a name="line.3533"></a> +<span class="sourceLineNo">3534</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3534"></a> +<span class="sourceLineNo">3535</span> List<RegionInfo> hris) {<a name="line.3535"></a> +<span class="sourceLineNo">3536</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3536"></a> +<span class="sourceLineNo">3537</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3537"></a> +<span class="sourceLineNo">3538</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3538"></a> +<span class="sourceLineNo">3539</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a> +<span class="sourceLineNo">3540</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a> +<span class="sourceLineNo">3541</span> .serverName(serverName).call();<a name="line.3541"></a> +<span class="sourceLineNo">3542</span> }<a name="line.3542"></a> +<span class="sourceLineNo">3543</span>}<a name="line.3543"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/d220bc5e/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.MasterRpcCall.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.MasterRpcCall.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.MasterRpcCall.html index e63cd50..d8c0d2b 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.MasterRpcCall.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.MasterRpcCall.html @@ -422,7 +422,7 @@ <span class="sourceLineNo">414</span> }<a name="line.414"></a> <span class="sourceLineNo">415</span><a name="line.415"></a> <span class="sourceLineNo">416</span> /**<a name="line.416"></a> -<span class="sourceLineNo">417</span> * {@link #listTables(boolean)}<a name="line.417"></a> +<span class="sourceLineNo">417</span> * {@link #listTableDescriptors(boolean)}<a name="line.417"></a> <span class="sourceLineNo">418</span> */<a name="line.418"></a> <span class="sourceLineNo">419</span> @Override<a name="line.419"></a> <span class="sourceLineNo">420</span> public CompletableFuture<List<TableDescriptor>> listTableDescriptors(Pattern pattern,<a name="line.420"></a> @@ -3476,16 +3476,79 @@ <span class="sourceLineNo">3468</span> return future;<a name="line.3468"></a> <span class="sourceLineNo">3469</span> }<a name="line.3469"></a> <span class="sourceLineNo">3470</span><a name="line.3470"></a> -<span class="sourceLineNo">3471</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3471"></a> -<span class="sourceLineNo">3472</span> List<RegionInfo> hris) {<a name="line.3472"></a> -<span class="sourceLineNo">3473</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3473"></a> -<span class="sourceLineNo">3474</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3474"></a> -<span class="sourceLineNo">3475</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3475"></a> -<span class="sourceLineNo">3476</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3476"></a> -<span class="sourceLineNo">3477</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3477"></a> -<span class="sourceLineNo">3478</span> .serverName(serverName).call();<a name="line.3478"></a> -<span class="sourceLineNo">3479</span> }<a name="line.3479"></a> -<span class="sourceLineNo">3480</span>}<a name="line.3480"></a> +<span class="sourceLineNo">3471</span> @Override<a name="line.3471"></a> +<span class="sourceLineNo">3472</span> public CompletableFuture<Void> cloneTableSchema(TableName tableName, TableName newTableName,<a name="line.3472"></a> +<span class="sourceLineNo">3473</span> boolean preserveSplits) {<a name="line.3473"></a> +<span class="sourceLineNo">3474</span> CompletableFuture<Void> future = new CompletableFuture<>();<a name="line.3474"></a> +<span class="sourceLineNo">3475</span> tableExists(tableName).whenComplete(<a name="line.3475"></a> +<span class="sourceLineNo">3476</span> (exist, err) -> {<a name="line.3476"></a> +<span class="sourceLineNo">3477</span> if (err != null) {<a name="line.3477"></a> +<span class="sourceLineNo">3478</span> future.completeExceptionally(err);<a name="line.3478"></a> +<span class="sourceLineNo">3479</span> return;<a name="line.3479"></a> +<span class="sourceLineNo">3480</span> }<a name="line.3480"></a> +<span class="sourceLineNo">3481</span> if (!exist) {<a name="line.3481"></a> +<span class="sourceLineNo">3482</span> future.completeExceptionally(new TableNotFoundException(tableName));<a name="line.3482"></a> +<span class="sourceLineNo">3483</span> return;<a name="line.3483"></a> +<span class="sourceLineNo">3484</span> }<a name="line.3484"></a> +<span class="sourceLineNo">3485</span> tableExists(newTableName).whenComplete(<a name="line.3485"></a> +<span class="sourceLineNo">3486</span> (exist1, err1) -> {<a name="line.3486"></a> +<span class="sourceLineNo">3487</span> if (err1 != null) {<a name="line.3487"></a> +<span class="sourceLineNo">3488</span> future.completeExceptionally(err1);<a name="line.3488"></a> +<span class="sourceLineNo">3489</span> return;<a name="line.3489"></a> +<span class="sourceLineNo">3490</span> }<a name="line.3490"></a> +<span class="sourceLineNo">3491</span> if (exist1) {<a name="line.3491"></a> +<span class="sourceLineNo">3492</span> future.completeExceptionally(new TableExistsException(newTableName));<a name="line.3492"></a> +<span class="sourceLineNo">3493</span> return;<a name="line.3493"></a> +<span class="sourceLineNo">3494</span> }<a name="line.3494"></a> +<span class="sourceLineNo">3495</span> getDescriptor(tableName).whenComplete(<a name="line.3495"></a> +<span class="sourceLineNo">3496</span> (tableDesc, err2) -> {<a name="line.3496"></a> +<span class="sourceLineNo">3497</span> if (err2 != null) {<a name="line.3497"></a> +<span class="sourceLineNo">3498</span> future.completeExceptionally(err2);<a name="line.3498"></a> +<span class="sourceLineNo">3499</span> return;<a name="line.3499"></a> +<span class="sourceLineNo">3500</span> }<a name="line.3500"></a> +<span class="sourceLineNo">3501</span> TableDescriptor newTableDesc<a name="line.3501"></a> +<span class="sourceLineNo">3502</span> = TableDescriptorBuilder.copy(newTableName, tableDesc);<a name="line.3502"></a> +<span class="sourceLineNo">3503</span> if (preserveSplits) {<a name="line.3503"></a> +<span class="sourceLineNo">3504</span> getTableSplits(tableName).whenComplete((splits, err3) -> {<a name="line.3504"></a> +<span class="sourceLineNo">3505</span> if (err3 != null) {<a name="line.3505"></a> +<span class="sourceLineNo">3506</span> future.completeExceptionally(err3);<a name="line.3506"></a> +<span class="sourceLineNo">3507</span> } else {<a name="line.3507"></a> +<span class="sourceLineNo">3508</span> createTable(newTableDesc, splits).whenComplete(<a name="line.3508"></a> +<span class="sourceLineNo">3509</span> (result, err4) -> {<a name="line.3509"></a> +<span class="sourceLineNo">3510</span> if (err4 != null) {<a name="line.3510"></a> +<span class="sourceLineNo">3511</span> future.completeExceptionally(err4);<a name="line.3511"></a> +<span class="sourceLineNo">3512</span> } else {<a name="line.3512"></a> +<span class="sourceLineNo">3513</span> future.complete(result);<a name="line.3513"></a> +<span class="sourceLineNo">3514</span> }<a name="line.3514"></a> +<span class="sourceLineNo">3515</span> });<a name="line.3515"></a> +<span class="sourceLineNo">3516</span> }<a name="line.3516"></a> +<span class="sourceLineNo">3517</span> });<a name="line.3517"></a> +<span class="sourceLineNo">3518</span> } else {<a name="line.3518"></a> +<span class="sourceLineNo">3519</span> createTable(newTableDesc).whenComplete(<a name="line.3519"></a> +<span class="sourceLineNo">3520</span> (result, err5) -> {<a name="line.3520"></a> +<span class="sourceLineNo">3521</span> if (err5 != null) {<a name="line.3521"></a> +<span class="sourceLineNo">3522</span> future.completeExceptionally(err5);<a name="line.3522"></a> +<span class="sourceLineNo">3523</span> } else {<a name="line.3523"></a> +<span class="sourceLineNo">3524</span> future.complete(result);<a name="line.3524"></a> +<span class="sourceLineNo">3525</span> }<a name="line.3525"></a> +<span class="sourceLineNo">3526</span> });<a name="line.3526"></a> +<span class="sourceLineNo">3527</span> }<a name="line.3527"></a> +<span class="sourceLineNo">3528</span> });<a name="line.3528"></a> +<span class="sourceLineNo">3529</span> });<a name="line.3529"></a> +<span class="sourceLineNo">3530</span> });<a name="line.3530"></a> +<span class="sourceLineNo">3531</span> return future;<a name="line.3531"></a> +<span class="sourceLineNo">3532</span> }<a name="line.3532"></a> +<span class="sourceLineNo">3533</span><a name="line.3533"></a> +<span class="sourceLineNo">3534</span> private CompletableFuture<CacheEvictionStats> clearBlockCache(ServerName serverName,<a name="line.3534"></a> +<span class="sourceLineNo">3535</span> List<RegionInfo> hris) {<a name="line.3535"></a> +<span class="sourceLineNo">3536</span> return this.<CacheEvictionStats> newAdminCaller().action((controller, stub) -> this<a name="line.3536"></a> +<span class="sourceLineNo">3537</span> .<ClearRegionBlockCacheRequest, ClearRegionBlockCacheResponse, CacheEvictionStats> adminCall(<a name="line.3537"></a> +<span class="sourceLineNo">3538</span> controller, stub, RequestConverter.buildClearRegionBlockCacheRequest(hris),<a name="line.3538"></a> +<span class="sourceLineNo">3539</span> (s, c, req, done) -> s.clearRegionBlockCache(controller, req, done),<a name="line.3539"></a> +<span class="sourceLineNo">3540</span> resp -> ProtobufUtil.toCacheEvictionStats(resp.getStats())))<a name="line.3540"></a> +<span class="sourceLineNo">3541</span> .serverName(serverName).call();<a name="line.3541"></a> +<span class="sourceLineNo">3542</span> }<a name="line.3542"></a> +<span class="sourceLineNo">3543</span>}<a name="line.3543"></a>