Skip to content

Commit

Permalink
HBASE-27444 Add tool commands list_enabled_tables and list_disabled_t…
Browse files Browse the repository at this point in the history
…ables
  • Loading branch information
2005hithlj committed Nov 21, 2022
1 parent 71826de commit 903c255
Show file tree
Hide file tree
Showing 19 changed files with 497 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,13 @@ public interface Admin extends Abortable, Closeable {
*/
List<TableDescriptor> listTableDescriptors() throws IOException;

/**
* List all enabled or disabled tables
* @param isEnabled is true means return enabled tables, false means return disabled tables
* @return a list of enabled or disabled tables
*/
List<TableDescriptor> listTableDescriptorsByState(boolean isEnabled) throws IOException;

/**
* List all the userspace tables that match the given pattern.
* @param pattern The compiled regular expression to match against
Expand Down Expand Up @@ -264,6 +271,14 @@ default TableName[] listTableNames(Pattern pattern) throws IOException {
@Deprecated
TableName[] listTableNames(String regex, boolean includeSysTables) throws IOException;

/**
* List all enabled or disabled table names
* @param isEnabled is true means return enabled table names, false means return disabled table
* names
* @return a list of enabled or disabled table names
*/
List<TableName> listTableNamesByState(boolean isEnabled) throws IOException;

/**
* Get a table descriptor.
* @param tableName as a {@link TableName}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,14 @@ CompletableFuture<List<TableDescriptor>> listTableDescriptors(Pattern pattern,
*/
CompletableFuture<List<TableDescriptor>> listTableDescriptorsByNamespace(String name);

/**
* List all enabled or disabled table descriptors
* @param isEnabled is true means return enabled table descriptors, false means return disabled
* table descriptors
* @return a list of table names wrapped by a {@link CompletableFuture}.
*/
CompletableFuture<List<TableDescriptor>> listTableDescriptorsByState(boolean isEnabled);

/**
* List all of the names of userspace tables.
* @return a list of table names wrapped by a {@link CompletableFuture}.
Expand Down Expand Up @@ -137,6 +145,14 @@ default CompletableFuture<List<TableName>> listTableNames() {
*/
CompletableFuture<List<TableName>> listTableNamesByNamespace(String name);

/**
* List all enabled or disabled table names
* @param isEnabled is true means return enabled table names, false means return disabled table
* names
* @return a list of table names wrapped by a {@link CompletableFuture}.
*/
CompletableFuture<List<TableName>> listTableNamesByState(boolean isEnabled);

/**
* Method for getting the tableDescriptor
* @param tableName as a {@link TableName}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,11 @@ public CompletableFuture<List<TableDescriptor>> listTableDescriptorsByNamespace(
return wrap(rawAdmin.listTableDescriptorsByNamespace(name));
}

@Override
public CompletableFuture<List<TableDescriptor>> listTableDescriptorsByState(boolean isEnabled) {
return wrap(rawAdmin.listTableDescriptorsByState(isEnabled));
}

@Override
public CompletableFuture<List<TableName>> listTableNames(boolean includeSysTables) {
return wrap(rawAdmin.listTableNames(includeSysTables));
Expand All @@ -115,6 +120,11 @@ public CompletableFuture<List<TableName>> listTableNamesByNamespace(String name)
return wrap(rawAdmin.listTableNamesByNamespace(name));
}

@Override
public CompletableFuture<List<TableName>> listTableNamesByState(boolean isEnabled) {
return wrap(rawAdmin.listTableNamesByState(isEnabled));
}

@Override
public CompletableFuture<TableDescriptor> getDescriptor(TableName tableName) {
return wrap(rawAdmin.getDescriptor(tableName));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1727,12 +1727,26 @@ public MasterProtos.GetTableDescriptorsResponse getTableDescriptors(RpcControlle
return stub.getTableDescriptors(controller, request);
}

@Override
public MasterProtos.ListTableDescriptorsByStateResponse listTableDescriptorsByState(
RpcController controller, MasterProtos.ListTableDescriptorsByStateRequest request)
throws ServiceException {
return stub.listTableDescriptorsByState(controller, request);
}

@Override
public MasterProtos.GetTableNamesResponse getTableNames(RpcController controller,
MasterProtos.GetTableNamesRequest request) throws ServiceException {
return stub.getTableNames(controller, request);
}

@Override
public MasterProtos.ListTableNamesByStateResponse listTableNamesByState(
RpcController controller, MasterProtos.ListTableNamesByStateRequest request)
throws ServiceException {
return stub.listTableNamesByState(controller, request);
}

@Override
public MasterProtos.GetClusterStatusResponse getClusterStatus(RpcController controller,
MasterProtos.GetClusterStatusRequest request) throws ServiceException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,11 @@
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespacesRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByStateRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByStateResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByStateRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByStateResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;
Expand Down Expand Up @@ -343,6 +347,20 @@ public List<TableDescriptor> listTableDescriptors() throws IOException {
return listTableDescriptors((Pattern) null, false);
}

@Override
public List<TableDescriptor> listTableDescriptorsByState(boolean isEnabled) throws IOException {
return executeCallable(
new MasterCallable<List<TableDescriptor>>(getConnection(), getRpcControllerFactory()) {
@Override
protected List<TableDescriptor> rpcCall() throws Exception {
ListTableDescriptorsByStateResponse response =
master.listTableDescriptorsByState(getRpcController(),
ListTableDescriptorsByStateRequest.newBuilder().setIsEnabled(isEnabled).build());
return ProtobufUtil.toTableDescriptorList(response);
}
});
}

@Override
public List<TableDescriptor> listTableDescriptors(Pattern pattern, boolean includeSysTables)
throws IOException {
Expand Down Expand Up @@ -566,6 +584,19 @@ public TableName[] listTableNames(final String regex, final boolean includeSysTa
return listTableNames(Pattern.compile(regex), includeSysTables);
}

@Override
public List<TableName> listTableNamesByState(boolean isEnabled) throws IOException {
return executeCallable(
new MasterCallable<List<TableName>>(getConnection(), getRpcControllerFactory()) {
@Override
protected List<TableName> rpcCall() throws Exception {
ListTableNamesByStateResponse response = master.listTableNamesByState(getRpcController(),
ListTableNamesByStateRequest.newBuilder().setIsEnabled(isEnabled).build());
return ProtobufUtil.toTableNameList(response.getTableNamesList());
}
});
}

@Override
public HTableDescriptor getTableDescriptor(final TableName tableName) throws IOException {
return getHTableDescriptor(tableName, getConnection(), rpcCallerFactory, rpcControllerFactory,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,8 +219,12 @@
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespacesResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByStateRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByStateResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByStateRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByStateResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse;
Expand Down Expand Up @@ -550,6 +554,17 @@ ListTableDescriptorsByNamespaceResponse, List<TableDescriptor>> call(controller,
.call();
}

@Override
public CompletableFuture<List<TableDescriptor>> listTableDescriptorsByState(boolean isEnabled) {
return this.<List<TableDescriptor>> newMasterCaller()
.action((controller, stub) -> this.<ListTableDescriptorsByStateRequest,
ListTableDescriptorsByStateResponse, List<TableDescriptor>> call(controller, stub,
ListTableDescriptorsByStateRequest.newBuilder().setIsEnabled(isEnabled).build(),
(s, c, req, done) -> s.listTableDescriptorsByState(c, req, done),
(resp) -> ProtobufUtil.toTableDescriptorList(resp)))
.call();
}

@Override
public CompletableFuture<List<TableName>> listTableNamesByNamespace(String name) {
return this.<List<TableName>> newMasterCaller()
Expand All @@ -561,6 +576,17 @@ ListTableNamesByNamespaceResponse, List<TableName>> call(controller, stub,
.call();
}

@Override
public CompletableFuture<List<TableName>> listTableNamesByState(boolean isEnabled) {
return this.<List<TableName>> newMasterCaller()
.action((controller, stub) -> this.<ListTableNamesByStateRequest,
ListTableNamesByStateResponse, List<TableName>> call(controller, stub,
ListTableNamesByStateRequest.newBuilder().setIsEnabled(isEnabled).build(),
(s, c, req, done) -> s.listTableNamesByState(c, req, done),
(resp) -> ProtobufUtil.toTableNameList(resp.getTableNamesList())))
.call();
}

@Override
public CompletableFuture<TableDescriptor> getDescriptor(TableName tableName) {
CompletableFuture<TableDescriptor> future = new CompletableFuture<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,12 @@
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespacesResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByStateRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByStateResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByStateRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByStateResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse;
Expand Down Expand Up @@ -443,12 +447,24 @@ public GetTableNamesResponse getTableNames(RpcController controller, GetTableNam
return stub.getTableNames(controller, request);
}

@Override
public ListTableNamesByStateResponse listTableNamesByState(RpcController controller,
ListTableNamesByStateRequest request) throws ServiceException {
return stub.listTableNamesByState(controller, request);
}

@Override
public GetTableDescriptorsResponse getTableDescriptors(RpcController controller,
GetTableDescriptorsRequest request) throws ServiceException {
return stub.getTableDescriptors(controller, request);
}

@Override
public ListTableDescriptorsByStateResponse listTableDescriptorsByState(RpcController controller,
ListTableDescriptorsByStateRequest request) throws ServiceException {
return stub.listTableDescriptorsByState(controller, request);
}

@Override
public SecurityCapabilitiesResponse getSecurityCapabilities(RpcController controller,
SecurityCapabilitiesRequest request) throws ServiceException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByStateResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse;
import org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos;
import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos;
Expand Down Expand Up @@ -457,6 +458,20 @@ public static List<TableDescriptor> toTableDescriptorList(GetTableDescriptorsRes
.collect(Collectors.toList());
}

/**
* Get a list of TableDescriptor from ListTableDescriptorsByNamespaceResponse protobuf
* @param proto the ListTableDescriptorsByNamespaceResponse
* @return a list of TableDescriptor
*/
public static List<TableDescriptor>
toTableDescriptorList(ListTableDescriptorsByStateResponse proto) {
if (proto == null) {
return new ArrayList<>();
}
return proto.getTableSchemaList().stream().map(ProtobufUtil::toTableDescriptor)
.collect(Collectors.toList());
}

/**
* get the split keys in form "byte [][]" from a CreateTableRequest proto
* @param proto the CreateTableRequest
Expand Down
24 changes: 24 additions & 0 deletions hbase-protocol-shaded/src/main/protobuf/Master.proto
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,14 @@ message GetTableDescriptorsResponse {
repeated TableSchema table_schema = 1;
}

message ListTableDescriptorsByStateRequest {
required bool is_enabled = 1;
}

message ListTableDescriptorsByStateResponse {
repeated TableSchema table_schema = 1;
}

message GetTableNamesRequest {
optional string regex = 1;
optional bool include_sys_tables = 2 [default=false];
Expand All @@ -521,6 +529,14 @@ message GetTableNamesResponse {
repeated TableName table_names = 1;
}

message ListTableNamesByStateRequest {
required bool is_enabled = 1;
}

message ListTableNamesByStateResponse {
repeated TableName table_names = 1;
}

message GetTableStateRequest {
required TableName table_name = 1;
}
Expand Down Expand Up @@ -769,10 +785,18 @@ service MasterService {
rpc GetTableDescriptors(GetTableDescriptorsRequest)
returns(GetTableDescriptorsResponse);

/** List all enabled or disabled table descriptors. */
rpc ListTableDescriptorsByState(ListTableDescriptorsByStateRequest)
returns(ListTableDescriptorsByStateResponse);

/** Get the list of table names. */
rpc GetTableNames(GetTableNamesRequest)
returns(GetTableNamesResponse);

/** List all enabled or disabled table names. */
rpc ListTableNamesByState(ListTableNamesByStateRequest)
returns(ListTableNamesByStateResponse);

/** Return cluster status. */
rpc GetClusterStatus(GetClusterStatusRequest)
returns(GetClusterStatusResponse);
Expand Down
Loading

0 comments on commit 903c255

Please sign in to comment.