From e843991be6dd8f3506878ee4163b4bed6a397e3a Mon Sep 17 00:00:00 2001
From: Guido Trotter <ultrotter@google.com>
Date: Tue, 11 Aug 2009 10:34:44 +0100
Subject: [PATCH] SimpleConfigReader.GetNodeStatusFlags

Adding a way to retrieve the three node status flags, all in one go,
from SimpleConfigReader. Non-existing nodes are handled by returning
"None".

Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
---
 lib/ssconf.py | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/lib/ssconf.py b/lib/ssconf.py
index 8e31ebc82..bdde8aef3 100644
--- a/lib/ssconf.py
+++ b/lib/ssconf.py
@@ -131,6 +131,23 @@ class SimpleConfigReader(object):
   def GetClusterSerialNo(self):
     return self._config_data["cluster"]["serial_no"]
 
+  def GetNodeStatusFlags(self, node):
+    """Get a node's status flags
+
+    @type node: string
+    @param node: node name
+    @rtype: (bool, bool, bool)
+    @return: (master_candidate, drained, offline) (or None if no such node)
+
+    """
+    if node not in self._config_data["nodes"]:
+      return None
+
+    master_candidate = self._config_data["nodes"][node]["master_candidate"]
+    drained = self._config_data["nodes"][node]["drained"]
+    offline = self._config_data["nodes"][node]["offline"]
+    return master_candidate, drained, offline
+
 
 class SimpleStore(object):
   """Interface to static cluster data.
-- 
GitLab