util.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // Copyright 2016 The etcd Authors
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. package v3rpc
  15. import (
  16. "github.com/coreos/etcd/auth"
  17. "github.com/coreos/etcd/etcdserver"
  18. "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes"
  19. "github.com/coreos/etcd/lease"
  20. "github.com/coreos/etcd/mvcc"
  21. "google.golang.org/grpc"
  22. "google.golang.org/grpc/codes"
  23. )
  24. func togRPCError(err error) error {
  25. switch err {
  26. case mvcc.ErrCompacted:
  27. return rpctypes.ErrGRPCCompacted
  28. case mvcc.ErrFutureRev:
  29. return rpctypes.ErrGRPCFutureRev
  30. case lease.ErrLeaseNotFound:
  31. return rpctypes.ErrGRPCLeaseNotFound
  32. case etcdserver.ErrRequestTooLarge:
  33. return rpctypes.ErrGRPCRequestTooLarge
  34. case etcdserver.ErrNoSpace:
  35. return rpctypes.ErrGRPCNoSpace
  36. case etcdserver.ErrTooManyRequests:
  37. return rpctypes.ErrTooManyRequests
  38. case etcdserver.ErrNoLeader:
  39. return rpctypes.ErrGRPCNoLeader
  40. case etcdserver.ErrStopped:
  41. return rpctypes.ErrGRPCStopped
  42. case etcdserver.ErrTimeout:
  43. return rpctypes.ErrGRPCTimeout
  44. case etcdserver.ErrTimeoutDueToLeaderFail:
  45. return rpctypes.ErrGRPCTimeoutDueToLeaderFail
  46. case auth.ErrRootUserNotExist:
  47. return rpctypes.ErrGRPCRootUserNotExist
  48. case auth.ErrRootRoleNotExist:
  49. return rpctypes.ErrGRPCRootRoleNotExist
  50. case auth.ErrUserAlreadyExist:
  51. return rpctypes.ErrGRPCUserAlreadyExist
  52. case auth.ErrUserNotFound:
  53. return rpctypes.ErrGRPCUserNotFound
  54. case auth.ErrRoleAlreadyExist:
  55. return rpctypes.ErrGRPCRoleAlreadyExist
  56. case auth.ErrRoleNotFound:
  57. return rpctypes.ErrGRPCRoleNotFound
  58. case auth.ErrAuthFailed:
  59. return rpctypes.ErrGRPCAuthFailed
  60. case auth.ErrPermissionDenied:
  61. return rpctypes.ErrGRPCPermissionDenied
  62. case auth.ErrRoleNotGranted:
  63. return rpctypes.ErrGRPCRoleNotGranted
  64. case auth.ErrPermissionNotGranted:
  65. return rpctypes.ErrGRPCPermissionNotGranted
  66. case auth.ErrAuthNotEnabled:
  67. return rpctypes.ErrGRPCAuthNotEnabled
  68. default:
  69. return grpc.Errorf(codes.Internal, err.Error())
  70. }
  71. }