/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // This file contains protocol buffers that are used for MasterAdminProtocol. import "Master.proto"; option java_package = "org.apache.hadoop.hbase.protobuf.generated"; option java_outer_classname = "MasterAdminProtos"; option java_generic_services = true; option java_generate_equals_and_hash = true; option optimize_for = SPEED; import "HBase.proto"; import "Client.proto"; /* Column-level protobufs */ message AddColumnRequest { required TableName table_name = 1; required ColumnFamilySchema column_families = 2; } message AddColumnResponse { } message DeleteColumnRequest { required TableName table_name = 1; required bytes column_name = 2; } message DeleteColumnResponse { } message ModifyColumnRequest { required TableName table_name = 1; required ColumnFamilySchema column_families = 2; } message ModifyColumnResponse { } /* Region-level Protos */ message MoveRegionRequest { required RegionSpecifier region = 1; optional ServerName dest_server_name = 2; } message MoveRegionResponse { } /** * Dispatch merging the specified regions. */ message DispatchMergingRegionsRequest { required RegionSpecifier region_a = 1; required RegionSpecifier region_b = 2; optional bool forcible = 3 [default = false]; } message DispatchMergingRegionsResponse { } message AssignRegionRequest { required RegionSpecifier region = 1; } message AssignRegionResponse { } message UnassignRegionRequest { required RegionSpecifier region = 1; optional bool force = 2 [default = false]; } message UnassignRegionResponse { } message OfflineRegionRequest { required RegionSpecifier region = 1; } message OfflineRegionResponse { } /* Table-level protobufs */ message CreateTableRequest { required TableSchema table_schema = 1; repeated bytes split_keys = 2; } message CreateTableResponse { } message DeleteTableRequest { required TableName table_name = 1; } message DeleteTableResponse { } message EnableTableRequest { required TableName table_name = 1; } message EnableTableResponse { } message DisableTableRequest { required TableName table_name = 1; } message DisableTableResponse { } message ModifyTableRequest { required TableName table_name = 1; required TableSchema table_schema = 2; } message ModifyTableResponse { } /* Namespace-level protobufs */ message CreateNamespaceRequest { required NamespaceDescriptor namespaceDescriptor = 1; } message CreateNamespaceResponse { } message DeleteNamespaceRequest { required string namespaceName = 1; } message DeleteNamespaceResponse { } message ModifyNamespaceRequest { required NamespaceDescriptor namespaceDescriptor = 1; } message ModifyNamespaceResponse { } message GetNamespaceDescriptorRequest { required string namespaceName = 1; } message GetNamespaceDescriptorResponse { required NamespaceDescriptor namespaceDescriptor = 1; } message ListNamespaceDescriptorsRequest { } message ListNamespaceDescriptorsResponse { repeated NamespaceDescriptor namespaceDescriptor = 1; } message ListTableDescriptorsByNamespaceRequest { required string namespaceName = 1; } message ListTableDescriptorsByNamespaceResponse { repeated TableSchema tableSchema = 1; } message ListTableNamesByNamespaceRequest { required string namespaceName = 1; } message ListTableNamesByNamespaceResponse { repeated TableName tableName = 1; } /* Cluster-level protobufs */ message ShutdownRequest { } message ShutdownResponse { } message StopMasterRequest { } message StopMasterResponse { } message BalanceRequest { } message BalanceResponse { required bool balancer_ran = 1; } message SetBalancerRunningRequest { required bool on = 1; optional bool synchronous = 2; } message SetBalancerRunningResponse { optional bool prev_balance_value = 1; } message RunCatalogScanRequest { } message RunCatalogScanResponse { optional int32 scan_result = 1; } message EnableCatalogJanitorRequest { required bool enable = 1; } message EnableCatalogJanitorResponse { optional bool prev_value = 1; } message IsCatalogJanitorEnabledRequest { } message IsCatalogJanitorEnabledResponse { required bool value = 1; } message SnapshotRequest { required SnapshotDescription snapshot = 1; } message SnapshotResponse { required int64 expected_timeout = 1; } message GetCompletedSnapshotsRequest { } message GetCompletedSnapshotsResponse { repeated SnapshotDescription snapshots = 1; } message DeleteSnapshotRequest { required SnapshotDescription snapshot = 1; } message DeleteSnapshotResponse { } message RestoreSnapshotRequest { required SnapshotDescription snapshot = 1; } message RestoreSnapshotResponse { } /* if you don't send the snapshot, then you will get it back * in the response (if the snapshot is done) so you can check the snapshot */ message IsSnapshotDoneRequest { optional SnapshotDescription snapshot = 1; } message IsSnapshotDoneResponse { optional bool done = 1 [default = false]; optional SnapshotDescription snapshot = 2; } message IsRestoreSnapshotDoneRequest { optional SnapshotDescription snapshot = 1; } message IsRestoreSnapshotDoneResponse { optional bool done = 1 [default = false]; } service MasterAdminService { /** Adds a column to the specified table. */ rpc AddColumn(AddColumnRequest) returns(AddColumnResponse); /** Deletes a column from the specified table. Table must be disabled. */ rpc DeleteColumn(DeleteColumnRequest) returns(DeleteColumnResponse); /** Modifies an existing column on the specified table. */ rpc ModifyColumn(ModifyColumnRequest) returns(ModifyColumnResponse); /** Move the region region to the destination server. */ rpc MoveRegion(MoveRegionRequest) returns(MoveRegionResponse); /** Master dispatch merging the regions */ rpc DispatchMergingRegions(DispatchMergingRegionsRequest) returns(DispatchMergingRegionsResponse); /** Assign a region to a server chosen at random. */ rpc AssignRegion(AssignRegionRequest) returns(AssignRegionResponse); /** * Unassign a region from current hosting regionserver. Region will then be * assigned to a regionserver chosen at random. Region could be reassigned * back to the same server. Use MoveRegion if you want * to control the region movement. */ rpc UnassignRegion(UnassignRegionRequest) returns(UnassignRegionResponse); /** * Offline a region from the assignment manager's in-memory state. The * region should be in a closed state and there will be no attempt to * automatically reassign the region as in unassign. This is a special * method, and should only be used by experts or hbck. */ rpc OfflineRegion(OfflineRegionRequest) returns(OfflineRegionResponse); /** Deletes a table */ rpc DeleteTable(DeleteTableRequest) returns(DeleteTableResponse); /** Puts the table on-line (only needed if table has been previously taken offline) */ rpc EnableTable(EnableTableRequest) returns(EnableTableResponse); /** Take table offline */ rpc DisableTable(DisableTableRequest) returns(DisableTableResponse); /** Modify a table's metadata */ rpc ModifyTable(ModifyTableRequest) returns(ModifyTableResponse); /** Creates a new table asynchronously */ rpc CreateTable(CreateTableRequest) returns(CreateTableResponse); /** Shutdown an HBase cluster. */ rpc Shutdown(ShutdownRequest) returns(ShutdownResponse); /** Stop HBase Master only. Does not shutdown the cluster. */ rpc StopMaster(StopMasterRequest) returns(StopMasterResponse); /** * Run the balancer. Will run the balancer and if regions to move, it will * go ahead and do the reassignments. Can NOT run for various reasons. * Check logs. */ rpc Balance(BalanceRequest) returns(BalanceResponse); /** * Turn the load balancer on or off. * If synchronous is true, it waits until current balance() call, if outstanding, to return. */ rpc SetBalancerRunning(SetBalancerRunningRequest) returns(SetBalancerRunningResponse); /** Get a run of the catalog janitor */ rpc RunCatalogScan(RunCatalogScanRequest) returns(RunCatalogScanResponse); /** * Enable the catalog janitor on or off. */ rpc EnableCatalogJanitor(EnableCatalogJanitorRequest) returns(EnableCatalogJanitorResponse); /** * Query whether the catalog janitor is enabled. */ rpc IsCatalogJanitorEnabled(IsCatalogJanitorEnabledRequest) returns(IsCatalogJanitorEnabledResponse); /** * Call a master coprocessor endpoint */ rpc ExecMasterService(CoprocessorServiceRequest) returns(CoprocessorServiceResponse); /** * Create a snapshot for the given table. */ rpc Snapshot(SnapshotRequest) returns(SnapshotResponse); /** * Get completed snapshots. * Returns a list of snapshot descriptors for completed snapshots */ rpc GetCompletedSnapshots(GetCompletedSnapshotsRequest) returns(GetCompletedSnapshotsResponse); /** * Delete an existing snapshot. This method can also be used to clean up an aborted snapshot. */ rpc DeleteSnapshot(DeleteSnapshotRequest) returns(DeleteSnapshotResponse); /** * Determine if the snapshot is done yet. */ rpc IsSnapshotDone(IsSnapshotDoneRequest) returns(IsSnapshotDoneResponse); /** * Restore a snapshot */ rpc RestoreSnapshot(RestoreSnapshotRequest) returns(RestoreSnapshotResponse); /** * Determine if the snapshot restore is done yet. */ rpc IsRestoreSnapshotDone(IsRestoreSnapshotDoneRequest) returns(IsRestoreSnapshotDoneResponse); /** return true if master is available */ rpc IsMasterRunning(IsMasterRunningRequest) returns(IsMasterRunningResponse); /** Modify a namespace's metadata */ rpc ModifyNamespace(ModifyNamespaceRequest) returns(ModifyNamespaceResponse); /** Creates a new namespace synchronously */ rpc CreateNamespace(CreateNamespaceRequest) returns(CreateNamespaceResponse); /** Deletes namespace synchronously */ rpc DeleteNamespace(DeleteNamespaceRequest) returns(DeleteNamespaceResponse); /** Get a namespace descriptor by name */ rpc GetNamespaceDescriptor(GetNamespaceDescriptorRequest) returns(GetNamespaceDescriptorResponse); /** returns a list of namespaces */ rpc ListNamespaceDescriptors(ListNamespaceDescriptorsRequest) returns(ListNamespaceDescriptorsResponse); /** returns a list of tables for a given namespace*/ rpc ListTableDescriptorsByNamespace(ListTableDescriptorsByNamespaceRequest) returns(ListTableDescriptorsByNamespaceResponse); /** returns a list of tables for a given namespace*/ rpc ListTableNamesByNamespace(ListTableNamesByNamespaceRequest) returns(ListTableNamesByNamespaceResponse); }