From e50bdd6881f020db5ac9d3f2b12f755a7b621b4e Mon Sep 17 00:00:00 2001
From: Guido Trotter <ultrotter@google.com>
Date: Thu, 26 Jun 2008 14:42:14 +0000
Subject: [PATCH] Add errors.QuitGanetiException

This exception does not signal an error but serves the purpose of making
the ganeti daemon shut down after handling a request. Currently it will
be used by ganeti-noded but in the future ganeti-masterd might make use
of it as well. Its usage is documented in the docstring.

Reviewed-by: iustinp
---
 lib/errors.py | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/lib/errors.py b/lib/errors.py
index a44826c03..646bf9153 100644
--- a/lib/errors.py
+++ b/lib/errors.py
@@ -217,3 +217,22 @@ class CommandError(GenericError):
   """External command error.
 
   """
+
+
+class QuitGanetiException(Exception):
+  """Signal that Ganeti that it must quit.
+
+  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).
+
+  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
+    raise QuitGanetiException((True, "Fatal safety violation, shutting down"))
+
+  """
+
-- 
GitLab