Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HBASE-27444 Add tool commands list_enabled_tables and list_disabled_tables #4880

Merged
merged 1 commit into from
Nov 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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