blob: 69540c14127b5e0a9f28583b1e34d1c4a202b110 [file] [log] [blame]
/**
* 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 = true];
}
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);
}