This is not necessarily an error (and thus not a subclass of GenericError),
but it's an exceptional circumstance and it is thus treated. This instance
- should be instantiated with a tuple of two values. The first value will
- specify whether an error should returned to the caller, and the second one
- will be the returned result (either as an error or as a normal result).
+ should be instantiated with two values. The first one will specify whether an
+ 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))
+ raise QuitGanetiException(False, True)
# Send an error to the caller, and quit ganeti
- raise QuitGanetiException((True, "Fatal safety violation, shutting down"))
+ raise QuitGanetiException(True, "Fatal safety violation, shutting down")
+
+ """
+
+
+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