diff --git a/lib/constants.py b/lib/constants.py
index 8ade4b6805361c3fb64229d6a122fd63d1bc7e4e..8cb675fd02cff16c9b0031494b30065d8cfc3f52 100644
--- a/lib/constants.py
+++ b/lib/constants.py
@@ -130,6 +130,9 @@ LOCALHOST_IP_ADDRESS = "127.0.0.1"
 TCP_PING_TIMEOUT = 10
 GANETI_RUNAS = "root"
 
+# valid os status
+OS_VALID_STATUS = "VALID"
+
 # ssh constants
 SSH_INITD_SCRIPT = _autoconf.SSH_INITD_SCRIPT
 SSH_CONFIG_DIR = "/etc/ssh/"
diff --git a/lib/objects.py b/lib/objects.py
index 803b893ddb4899037998764ded089dabc79ec1bd..2f27a270e875810dd3ba08a2a7c5958911b8f4be 100644
--- a/lib/objects.py
+++ b/lib/objects.py
@@ -589,6 +589,7 @@ class OS(ConfigObject):
   __slots__ = [
     "name",
     "path",
+    "status",
     "api_version",
     "create_script",
     "export_script",
@@ -596,6 +597,10 @@ class OS(ConfigObject):
     "rename_script",
     ]
 
+  def __nonzero__(self):
+    return self.status == constants.OS_VALID_STATUS
+
+  __bool__ = __nonzero__
 
 class Node(TaggableObject):
   """Config object representing a node."""