X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/d11bda8d8187afdbefedd6c4d37a2fcaa4f6c980..12649e359bc3a778c5a3f8fb17ee6731c45decd4:/lib/errors.py diff --git a/lib/errors.py b/lib/errors.py index bbf13f1..b54a149 100644 --- a/lib/errors.py +++ b/lib/errors.py @@ -228,7 +228,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 @@ -241,3 +242,42 @@ 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