X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/9f9c8ee24c48e135b9a08f1ca468f00654b3c486..c8fcde472922e4ee664d904e0bf1a583f1d5040d:/lib/errors.py diff --git a/lib/errors.py b/lib/errors.py index 9a62409..80a49d6 100644 --- a/lib/errors.py +++ b/lib/errors.py @@ -198,6 +198,10 @@ class UnitParseError(GenericError): """ +class TypeEnforcementError(GenericError): + """Unable to enforce data type. + + """ class SshKeyError(GenericError): """Invalid SSH key. @@ -228,7 +232,8 @@ class QuitGanetiException(Exception): error should returned to the caller, and the second one will be the returned result (either as an error or as a normal result). - Examples: + Examples:: + # Return a result of "True" to the caller, but quit ganeti afterwards raise QuitGanetiException(False, True) # Send an error to the caller, and quit ganeti @@ -236,3 +241,47 @@ class QuitGanetiException(Exception): """ + +class JobQueueError(GenericError): + """Job queue error. + + """ + + +class JobQueueDrainError(JobQueueError): + """Job queue is marked for drain error. + + This is raised when a job submission attempt is made but the queue + is marked for drain. + + """ + + +class JobQueueFull(JobQueueError): + """Job queue full error. + + Raised when job queue size reached its hard limit. + + """ + + +# errors should be added above + + +def GetErrorClass(name): + """Return the class of an exception. + + Given the class name, return the class itself. + + @type name: str + @param name: the exception name + @rtype: class + @return: the actual class, or None if not found + + """ + item = globals().get(name, None) + if item is not None: + if not (isinstance(item, type(Exception)) and + issubclass(item, GenericError)): + item = None + return item