hadoop/hadoop-common-project/hadoop-common/src/main/proto/HAServiceProtocol.proto

129 lines
2.8 KiB
Protocol Buffer

/**
* 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);
}