Browse Source

Lease: Add lease errors to togRPCError()

This allows lease's function to convert lease error to appropriate GRPC errors
fanmin shi 9 years ago
parent
commit
a862fd9f0f
2 changed files with 10 additions and 8 deletions
  1. 5 8
      etcdserver/api/v3rpc/lease.go
  2. 5 0
      etcdserver/api/v3rpc/util.go

+ 5 - 8
etcdserver/api/v3rpc/lease.go

@@ -18,7 +18,6 @@ import (
 	"io"
 	"io"
 
 
 	"github.com/coreos/etcd/etcdserver"
 	"github.com/coreos/etcd/etcdserver"
-	"github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes"
 	pb "github.com/coreos/etcd/etcdserver/etcdserverpb"
 	pb "github.com/coreos/etcd/etcdserver/etcdserverpb"
 	"github.com/coreos/etcd/lease"
 	"github.com/coreos/etcd/lease"
 	"golang.org/x/net/context"
 	"golang.org/x/net/context"
@@ -35,20 +34,18 @@ func NewLeaseServer(s *etcdserver.EtcdServer) pb.LeaseServer {
 
 
 func (ls *LeaseServer) LeaseGrant(ctx context.Context, cr *pb.LeaseGrantRequest) (*pb.LeaseGrantResponse, error) {
 func (ls *LeaseServer) LeaseGrant(ctx context.Context, cr *pb.LeaseGrantRequest) (*pb.LeaseGrantResponse, error) {
 	resp, err := ls.le.LeaseGrant(ctx, cr)
 	resp, err := ls.le.LeaseGrant(ctx, cr)
-	if err == lease.ErrLeaseExists {
-		return nil, rpctypes.ErrGRPCLeaseExist
-	}
+
 	if err != nil {
 	if err != nil {
-		return nil, err
+		return nil, togRPCError(err)
 	}
 	}
 	ls.hdr.fill(resp.Header)
 	ls.hdr.fill(resp.Header)
-	return resp, err
+	return resp, nil
 }
 }
 
 
 func (ls *LeaseServer) LeaseRevoke(ctx context.Context, rr *pb.LeaseRevokeRequest) (*pb.LeaseRevokeResponse, error) {
 func (ls *LeaseServer) LeaseRevoke(ctx context.Context, rr *pb.LeaseRevokeRequest) (*pb.LeaseRevokeResponse, error) {
 	resp, err := ls.le.LeaseRevoke(ctx, rr)
 	resp, err := ls.le.LeaseRevoke(ctx, rr)
 	if err != nil {
 	if err != nil {
-		return nil, rpctypes.ErrGRPCLeaseNotFound
+		return nil, togRPCError(err)
 	}
 	}
 	ls.hdr.fill(resp.Header)
 	ls.hdr.fill(resp.Header)
 	return resp, nil
 	return resp, nil
@@ -57,7 +54,7 @@ func (ls *LeaseServer) LeaseRevoke(ctx context.Context, rr *pb.LeaseRevokeReques
 func (ls *LeaseServer) LeaseTimeToLive(ctx context.Context, rr *pb.LeaseTimeToLiveRequest) (*pb.LeaseTimeToLiveResponse, error) {
 func (ls *LeaseServer) LeaseTimeToLive(ctx context.Context, rr *pb.LeaseTimeToLiveRequest) (*pb.LeaseTimeToLiveResponse, error) {
 	resp, err := ls.le.LeaseTimeToLive(ctx, rr)
 	resp, err := ls.le.LeaseTimeToLive(ctx, rr)
 	if err != nil {
 	if err != nil {
-		return nil, rpctypes.ErrGRPCLeaseNotFound
+		return nil, togRPCError(err)
 	}
 	}
 	ls.hdr.fill(resp.Header)
 	ls.hdr.fill(resp.Header)
 	return resp, nil
 	return resp, nil

+ 5 - 0
etcdserver/api/v3rpc/util.go

@@ -60,6 +60,11 @@ func togRPCError(err error) error {
 	case etcdserver.ErrUnhealthy:
 	case etcdserver.ErrUnhealthy:
 		return rpctypes.ErrGRPCUnhealthy
 		return rpctypes.ErrGRPCUnhealthy
 
 
+	case lease.ErrLeaseNotFound:
+		return rpctypes.ErrGRPCLeaseNotFound
+	case lease.ErrLeaseExists:
+		return rpctypes.ErrGRPCLeaseExist
+
 	case auth.ErrRootUserNotExist:
 	case auth.ErrRootUserNotExist:
 		return rpctypes.ErrGRPCRootUserNotExist
 		return rpctypes.ErrGRPCRootUserNotExist
 	case auth.ErrRootRoleNotExist:
 	case auth.ErrRootRoleNotExist: