X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/e4ccf6cd09482fb4a533532fd16c624405e9833b..2d76b5806fb4fc4a3b22e2035a7ea2c5a2f9d245:/lib/errors.py diff --git a/lib/errors.py b/lib/errors.py index 9fd9868..a50b037 100644 --- a/lib/errors.py +++ b/lib/errors.py @@ -22,6 +22,28 @@ """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.