/** * 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. */ option java_package = "org.apache.hadoop.ha.proto"; option java_outer_classname = "HAServiceProtocolProtos"; option java_generic_services = true; option java_generate_equals_and_hash = true; enum HAServiceStateProto { INITIALIZING = 0; ACTIVE = 1; STANDBY = 2; } /** * void request */ message MonitorHealthRequestProto { } /** * void response */ message MonitorHealthResponseProto { } /** * void request */ message TransitionToActiveRequestProto { } /** * void response */ message TransitionToActiveResponseProto { } /** * void request */ message TransitionToStandbyRequestProto { } /** * void response */ message TransitionToStandbyResponseProto { } /** * void request */ message GetServiceStateRequestProto { } /** * Returns the state of the service */ message GetServiceStateResponseProto { required HAServiceStateProto state = 1; } /** * void request */ message ReadyToBecomeActiveRequestProto { } /** * Returns true if service is ready to become active */ message ReadyToBecomeActiveResponseProto { required bool readyToBecomeActive = 1; } /** * Protocol interface provides High availability related * primitives to monitor and failover a service. * * For details see o.a.h.ha.HAServiceProtocol. */ service HAServiceProtocolService { /** * Monitor the health of a service. */ rpc monitorHealth(MonitorHealthRequestProto) returns(MonitorHealthResponseProto); /** * Request service to tranisition to active state. */ rpc transitionToActive(TransitionToActiveRequestProto) returns(TransitionToActiveResponseProto); /** * Request service to transition to standby state. */ rpc transitionToStandby(TransitionToStandbyRequestProto) returns(TransitionToStandbyResponseProto); /** * Get the current state of the service. */ rpc getServiceState(GetServiceStateRequestProto) returns(GetServiceStateResponseProto); /** * Check if the service is ready to become active */ rpc readyToBecomeActive(ReadyToBecomeActiveRequestProto) returns(ReadyToBecomeActiveResponseProto); }