mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
etcdserver: implement LeaseLeases API
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
This commit is contained in:
parent
8005f00bcf
commit
d25ae50c02
@ -68,6 +68,21 @@ func (ls *LeaseServer) LeaseTimeToLive(ctx context.Context, rr *pb.LeaseTimeToLi
|
|||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ls *LeaseServer) LeaseLeases(ctx context.Context, rr *pb.LeaseLeasesRequest) (*pb.LeaseLeasesResponse, error) {
|
||||||
|
resp, err := ls.le.LeaseLeases(ctx, rr)
|
||||||
|
if err != nil && err != lease.ErrLeaseNotFound {
|
||||||
|
return nil, togRPCError(err)
|
||||||
|
}
|
||||||
|
if err == lease.ErrLeaseNotFound {
|
||||||
|
resp = &pb.LeaseLeasesResponse{
|
||||||
|
Header: &pb.ResponseHeader{},
|
||||||
|
Leases: []*pb.LeaseStatus{},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ls.hdr.fill(resp.Header)
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (ls *LeaseServer) LeaseKeepAlive(stream pb.Lease_LeaseKeepAliveServer) (err error) {
|
func (ls *LeaseServer) LeaseKeepAlive(stream pb.Lease_LeaseKeepAliveServer) (err error) {
|
||||||
errc := make(chan error, 1)
|
errc := make(chan error, 1)
|
||||||
go func() {
|
go func() {
|
||||||
|
@ -60,6 +60,9 @@ type Lessor interface {
|
|||||||
|
|
||||||
// LeaseTimeToLive retrieves lease information.
|
// LeaseTimeToLive retrieves lease information.
|
||||||
LeaseTimeToLive(ctx context.Context, r *pb.LeaseTimeToLiveRequest) (*pb.LeaseTimeToLiveResponse, error)
|
LeaseTimeToLive(ctx context.Context, r *pb.LeaseTimeToLiveRequest) (*pb.LeaseTimeToLiveResponse, error)
|
||||||
|
|
||||||
|
// LeaseLeases lists all leases.
|
||||||
|
LeaseLeases(ctx context.Context, r *pb.LeaseLeasesRequest) (*pb.LeaseLeasesResponse, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type Authenticator interface {
|
type Authenticator interface {
|
||||||
@ -291,6 +294,15 @@ func (s *EtcdServer) LeaseTimeToLive(ctx context.Context, r *pb.LeaseTimeToLiveR
|
|||||||
return nil, ErrTimeout
|
return nil, ErrTimeout
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *EtcdServer) LeaseLeases(ctx context.Context, r *pb.LeaseLeasesRequest) (*pb.LeaseLeasesResponse, error) {
|
||||||
|
ls := s.lessor.Leases()
|
||||||
|
lss := make([]*pb.LeaseStatus, len(ls))
|
||||||
|
for i := range ls {
|
||||||
|
lss[i] = &pb.LeaseStatus{ID: int64(ls[i].ID)}
|
||||||
|
}
|
||||||
|
return &pb.LeaseLeasesResponse{Header: newHeader(s), Leases: lss}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (s *EtcdServer) waitLeader(ctx context.Context) (*membership.Member, error) {
|
func (s *EtcdServer) waitLeader(ctx context.Context) (*membership.Member, error) {
|
||||||
leader := s.cluster.Member(s.Leader())
|
leader := s.cluster.Member(s.Leader())
|
||||||
for leader == nil {
|
for leader == nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user