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)