diff --git a/lib/constants.py b/lib/constants.py
index 9738033bb33811e19ef2940e60abeb12f3944afc..0342ddf1a74ec23618ae2b6628eb734d65cb23c3 100644
--- a/lib/constants.py
+++ b/lib/constants.py
@@ -1498,17 +1498,19 @@ JOB_STATUS_RUNNING = "running"
 JOB_STATUS_CANCELED = "canceled"
 JOB_STATUS_SUCCESS = "success"
 JOB_STATUS_ERROR = "error"
+JOBS_PENDING = frozenset([
+  JOB_STATUS_QUEUED,
+  JOB_STATUS_WAITING,
+  JOB_STATUS_CANCELING,
+  ])
 JOBS_FINALIZED = frozenset([
   JOB_STATUS_CANCELED,
   JOB_STATUS_SUCCESS,
   JOB_STATUS_ERROR,
   ])
 JOB_STATUS_ALL = frozenset([
-  JOB_STATUS_QUEUED,
-  JOB_STATUS_WAITING,
-  JOB_STATUS_CANCELING,
   JOB_STATUS_RUNNING,
-  ]) | JOBS_FINALIZED
+  ]) | JOBS_PENDING | JOBS_FINALIZED
 
 # OpCode status
 # not yet finalized
diff --git a/lib/rapi/client.py b/lib/rapi/client.py
index da552fd7d322ee1356ffe689649c83288f42129c..67fa6026c7fe1281d9d1c511c214090d269bb876 100644
--- a/lib/rapi/client.py
+++ b/lib/rapi/client.py
@@ -80,17 +80,19 @@ JOB_STATUS_RUNNING = "running"
 JOB_STATUS_CANCELED = "canceled"
 JOB_STATUS_SUCCESS = "success"
 JOB_STATUS_ERROR = "error"
+JOB_STATUS_PENDING = frozenset([
+  JOB_STATUS_QUEUED,
+  JOB_STATUS_WAITING,
+  JOB_STATUS_CANCELING,
+  ])
 JOB_STATUS_FINALIZED = frozenset([
   JOB_STATUS_CANCELED,
   JOB_STATUS_SUCCESS,
   JOB_STATUS_ERROR,
   ])
 JOB_STATUS_ALL = frozenset([
-  JOB_STATUS_QUEUED,
-  JOB_STATUS_WAITING,
-  JOB_STATUS_CANCELING,
   JOB_STATUS_RUNNING,
-  ]) | JOB_STATUS_FINALIZED
+  ]) | JOB_STATUS_PENDING | JOB_STATUS_FINALIZED
 
 # Legacy name
 JOB_STATUS_WAITLOCK = JOB_STATUS_WAITING
diff --git a/test/ganeti.constants_unittest.py b/test/ganeti.constants_unittest.py
index 0b7736ce3c727e4b0767f2bcfdf00a373618828b..105a4d372c88706c260f2992b632f4fd7a5365c6 100755
--- a/test/ganeti.constants_unittest.py
+++ b/test/ganeti.constants_unittest.py
@@ -85,6 +85,11 @@ class TestConstants(unittest.TestCase):
     self.failUnless(set(constants.DISK_DT_DEFAULTS.keys()) ==
                     constants.DISK_TEMPLATES)
 
+  def testJobStatus(self):
+    self.assertFalse(constants.JOBS_PENDING & constants.JOBS_FINALIZED)
+    self.assertFalse(constants.JOBS_PENDING - constants.JOB_STATUS_ALL)
+    self.assertFalse(constants.JOBS_FINALIZED - constants.JOB_STATUS_ALL)
+
 
 class TestExportedNames(unittest.TestCase):
   _VALID_NAME_RE = re.compile(r"^[A-Z][A-Z0-9_]+$")
diff --git a/test/ganeti.rapi.client_unittest.py b/test/ganeti.rapi.client_unittest.py
index 98f117ab564a07ffdeca6a4849438f05e803363a..89c1b3ac29b3ba4561dbb4d8ff22ee4c64f4183e 100755
--- a/test/ganeti.rapi.client_unittest.py
+++ b/test/ganeti.rapi.client_unittest.py
@@ -114,6 +114,7 @@ class TestConstants(unittest.TestCase):
     self.assertEqual(client.JOB_STATUS_CANCELED, constants.JOB_STATUS_CANCELED)
     self.assertEqual(client.JOB_STATUS_SUCCESS, constants.JOB_STATUS_SUCCESS)
     self.assertEqual(client.JOB_STATUS_ERROR, constants.JOB_STATUS_ERROR)
+    self.assertEqual(client.JOB_STATUS_PENDING, constants.JOBS_PENDING)
     self.assertEqual(client.JOB_STATUS_FINALIZED, constants.JOBS_FINALIZED)
     self.assertEqual(client.JOB_STATUS_ALL, constants.JOB_STATUS_ALL)