exceptions.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. """Kazoo Exceptions"""
  2. from collections import defaultdict
  3. class KazooException(Exception):
  4. """Base Kazoo exception that all other kazoo library exceptions
  5. inherit from"""
  6. class ZookeeperError(KazooException):
  7. """Base Zookeeper exception for errors originating from the
  8. Zookeeper server"""
  9. class CancelledError(KazooException):
  10. """Raised when a process is cancelled by another thread"""
  11. class ConfigurationError(KazooException):
  12. """Raised if the configuration arguments to an object are
  13. invalid"""
  14. class ZookeeperStoppedError(KazooException):
  15. """Raised when the kazoo client stopped (and thus not connected)"""
  16. class ConnectionDropped(KazooException):
  17. """Internal error for jumping out of loops"""
  18. class LockTimeout(KazooException):
  19. """Raised if failed to acquire a lock.
  20. .. versionadded:: 1.1
  21. """
  22. class WriterNotClosedException(KazooException):
  23. """Raised if the writer is unable to stop closing when requested.
  24. .. versionadded:: 1.2
  25. """
  26. class SASLException(KazooException):
  27. """Raised if SASL encountered a (local) error.
  28. .. versionadded:: 2.7.0
  29. """
  30. def _invalid_error_code():
  31. raise RuntimeError('Invalid error code')
  32. EXCEPTIONS = defaultdict(_invalid_error_code)
  33. def _zookeeper_exception(code):
  34. def decorator(klass):
  35. EXCEPTIONS[code] = klass
  36. klass.code = code
  37. return klass
  38. return decorator
  39. @_zookeeper_exception(0)
  40. class RolledBackError(ZookeeperError):
  41. pass
  42. @_zookeeper_exception(-1)
  43. class SystemZookeeperError(ZookeeperError):
  44. pass
  45. @_zookeeper_exception(-2)
  46. class RuntimeInconsistency(ZookeeperError):
  47. pass
  48. @_zookeeper_exception(-3)
  49. class DataInconsistency(ZookeeperError):
  50. pass
  51. @_zookeeper_exception(-4)
  52. class ConnectionLoss(ZookeeperError):
  53. pass
  54. @_zookeeper_exception(-5)
  55. class MarshallingError(ZookeeperError):
  56. pass
  57. @_zookeeper_exception(-6)
  58. class UnimplementedError(ZookeeperError):
  59. pass
  60. @_zookeeper_exception(-7)
  61. class OperationTimeoutError(ZookeeperError):
  62. pass
  63. @_zookeeper_exception(-8)
  64. class BadArgumentsError(ZookeeperError):
  65. pass
  66. @_zookeeper_exception(-13)
  67. class NewConfigNoQuorumError(ZookeeperError):
  68. pass
  69. @_zookeeper_exception(-14)
  70. class ReconfigInProcessError(ZookeeperError):
  71. pass
  72. @_zookeeper_exception(-100)
  73. class APIError(ZookeeperError):
  74. pass
  75. @_zookeeper_exception(-101)
  76. class NoNodeError(ZookeeperError):
  77. pass
  78. @_zookeeper_exception(-102)
  79. class NoAuthError(ZookeeperError):
  80. pass
  81. @_zookeeper_exception(-103)
  82. class BadVersionError(ZookeeperError):
  83. pass
  84. @_zookeeper_exception(-108)
  85. class NoChildrenForEphemeralsError(ZookeeperError):
  86. pass
  87. @_zookeeper_exception(-110)
  88. class NodeExistsError(ZookeeperError):
  89. pass
  90. @_zookeeper_exception(-111)
  91. class NotEmptyError(ZookeeperError):
  92. pass
  93. @_zookeeper_exception(-112)
  94. class SessionExpiredError(ZookeeperError):
  95. pass
  96. @_zookeeper_exception(-113)
  97. class InvalidCallbackError(ZookeeperError):
  98. pass
  99. @_zookeeper_exception(-114)
  100. class InvalidACLError(ZookeeperError):
  101. pass
  102. @_zookeeper_exception(-115)
  103. class AuthFailedError(ZookeeperError):
  104. pass
  105. @_zookeeper_exception(-118)
  106. class SessionMovedError(ZookeeperError):
  107. pass
  108. @_zookeeper_exception(-119)
  109. class NotReadOnlyCallError(ZookeeperError):
  110. """An API call that is not read-only was used while connected to
  111. a read-only server"""
  112. class ConnectionClosedError(SessionExpiredError):
  113. """Connection is closed"""
  114. # BW Compat aliases for C lib style exceptions
  115. ConnectionLossException = ConnectionLoss
  116. MarshallingErrorException = MarshallingError
  117. SystemErrorException = SystemZookeeperError
  118. RuntimeInconsistencyException = RuntimeInconsistency
  119. DataInconsistencyException = DataInconsistency
  120. UnimplementedException = UnimplementedError
  121. OperationTimeoutException = OperationTimeoutError
  122. BadArgumentsException = BadArgumentsError
  123. ApiErrorException = APIError
  124. NoNodeException = NoNodeError
  125. NoAuthException = NoAuthError
  126. BadVersionException = BadVersionError
  127. NoChildrenForEphemeralsException = NoChildrenForEphemeralsError
  128. NodeExistsException = NodeExistsError
  129. InvalidACLException = InvalidACLError
  130. AuthFailedException = AuthFailedError
  131. NotEmptyException = NotEmptyError
  132. SessionExpiredException = SessionExpiredError
  133. InvalidCallbackException = InvalidCallbackError