# 02110-1301, USA.
-"""Ganeti exception handling"""
+"""Ganeti exception handling.
+
+"""
+
+from ganeti import compat
# OpPrereqError failure types
-# resolver errors
+#: Resolver errors
ECODE_RESOLVER = "resolver_error"
-# not enough resources (iallocator failure, disk space, memory, etc.)
+
+#: Not enough resources (iallocator failure, disk space, memory, etc.)
ECODE_NORES = "insufficient_resources"
-# wrong arguments (at syntax level)
+
+#: Temporarily out of resources; operation can be tried again
+ECODE_TEMP_NORES = "temp_insufficient_resources"
+
+#: Wrong arguments (at syntax level)
ECODE_INVAL = "wrong_input"
-# wrong entity state
+
+#: Wrong entity state
ECODE_STATE = "wrong_state"
-# entity not found
+
+#: Entity not found
ECODE_NOENT = "unknown_entity"
-# entity already exists
+
+#: Entity already exists
ECODE_EXISTS = "already_exists"
-# resource not unique (e.g. MAC or IP duplication)
+
+#: Resource not unique (e.g. MAC or IP duplication)
ECODE_NOTUNIQUE = "resource_not_unique"
-# internal cluster error
+
+#: Internal cluster error
ECODE_FAULT = "internal_error"
-# environment error (e.g. node disk error)
+
+#: Environment error (e.g. node disk error)
ECODE_ENVIRON = "environment_error"
#: List of all failure types
-ECODE_ALL = frozenset([
+ECODE_ALL = compat.UniqueFrozenset([
ECODE_RESOLVER,
ECODE_NORES,
+ ECODE_TEMP_NORES,
ECODE_INVAL,
ECODE_STATE,
ECODE_NOENT,
"""
+class AddressPoolError(GenericError):
+ """Errors related to IP address pools.
+
+ """
+
+
class ReservationError(GenericError):
"""Errors reserving a resource.
class OpPrereqError(GenericError):
"""Prerequisites for the OpCode are not fulfilled.
- This exception will have either one or two arguments. For the
- two-argument construction, the second argument should be one of the
+ This exception has two arguments: an error message, and one of the
ECODE_* codes.
"""