mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
api/v3election: error on missing "leader" field
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
This commit is contained in:
parent
8291e16128
commit
bb8a5377ce
@ -16,12 +16,17 @@ package v3election
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
|
|
||||||
"github.com/coreos/etcd/clientv3"
|
"github.com/coreos/etcd/clientv3"
|
||||||
"github.com/coreos/etcd/clientv3/concurrency"
|
"github.com/coreos/etcd/clientv3/concurrency"
|
||||||
epb "github.com/coreos/etcd/etcdserver/api/v3election/v3electionpb"
|
epb "github.com/coreos/etcd/etcdserver/api/v3election/v3electionpb"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// ErrMissingLeaderKey is returned when election API request
|
||||||
|
// is missing the "leader" field.
|
||||||
|
var ErrMissingLeaderKey = errors.New(`"leader" field must be provided`)
|
||||||
|
|
||||||
type electionServer struct {
|
type electionServer struct {
|
||||||
c *clientv3.Client
|
c *clientv3.Client
|
||||||
}
|
}
|
||||||
@ -51,6 +56,9 @@ func (es *electionServer) Campaign(ctx context.Context, req *epb.CampaignRequest
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (es *electionServer) Proclaim(ctx context.Context, req *epb.ProclaimRequest) (*epb.ProclaimResponse, error) {
|
func (es *electionServer) Proclaim(ctx context.Context, req *epb.ProclaimRequest) (*epb.ProclaimResponse, error) {
|
||||||
|
if req.Leader == nil {
|
||||||
|
return nil, ErrMissingLeaderKey
|
||||||
|
}
|
||||||
s, err := es.session(ctx, req.Leader.Lease)
|
s, err := es.session(ctx, req.Leader.Lease)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -98,6 +106,9 @@ func (es *electionServer) Leader(ctx context.Context, req *epb.LeaderRequest) (*
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (es *electionServer) Resign(ctx context.Context, req *epb.ResignRequest) (*epb.ResignResponse, error) {
|
func (es *electionServer) Resign(ctx context.Context, req *epb.ResignRequest) (*epb.ResignResponse, error) {
|
||||||
|
if req.Leader == nil {
|
||||||
|
return nil, ErrMissingLeaderKey
|
||||||
|
}
|
||||||
s, err := es.session(ctx, req.Leader.Lease)
|
s, err := es.session(ctx, req.Leader.Lease)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
Loading…
x
Reference in New Issue
Block a user