Add daemon for instance import and export
[ganeti-local] / lib / errors.py
index 9fd9868..a50b037 100644 (file)
 """Ganeti exception handling"""
 
 
+# OpPrereqError failure types
+
+# resolver errors
+ECODE_RESOLVER = "resolver_error"
+# not enough resources (iallocator failure, disk space, memory, etc.)
+ECODE_NORES = "insufficient_resources"
+# wrong arguments (at syntax level)
+ECODE_INVAL = "wrong_input"
+# wrong entity state
+ECODE_STATE = "wrong_state"
+# entity not found
+ECODE_NOENT = "unknown_entity"
+# entity already exists
+ECODE_EXISTS = "already_exists"
+# resource not unique (e.g. MAC or IP duplication)
+ECODE_NOTUNIQUE = "resource_not_unique"
+# internal cluster error
+ECODE_FAULT = "internal_error"
+# environment error (e.g. node disk error)
+ECODE_ENVIRON = "environment_error"
+
+
 class GenericError(Exception):
   """Base exception for Ganeti.
 
@@ -88,6 +110,12 @@ class ConfigurationError(GenericError):
   pass
 
 
+class ReservationError(GenericError):
+  """Errors reserving a resource.
+
+  """
+
+
 class RemoteError(GenericError):
   """Programming-related error on remote call.
 
@@ -125,6 +153,10 @@ class ParameterError(GenericError):
 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
+  ECODE_* codes.
+
   """
 
 
@@ -134,12 +166,6 @@ class OpExecError(GenericError):
   """
 
 
-class OpRetryError(OpExecError):
-  """Error during OpCode execution, action can be retried.
-
-  """
-
-
 class OpCodeUnknown(GenericError):
   """Unknown opcode submitted.
 
@@ -358,7 +384,7 @@ def EncodeException(err):
 
 
 def MaybeRaise(result):
-  """Is this looks like an encoded Ganeti exception, raise it.
+  """If this looks like an encoded Ganeti exception, raise it.
 
   This function tries to parse the passed argument and if it looks
   like an encoding done by EncodeException, it will re-raise it.