From 6903fea04d3f8360d685d97f700309d7018d4502 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Tue, 27 Nov 2012 15:57:24 +0100 Subject: [PATCH] Add type for finalised job statuses For now, we don't need a pending job status type as well, so we'll delay adding that until later. Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: Guido Trotter <ultrotter@google.com> --- htest/Test/Ganeti/Types.hs | 16 ++++++++++++++++ htools/Ganeti/Types.hs | 10 ++++++++++ 2 files changed, 26 insertions(+) diff --git a/htest/Test/Ganeti/Types.hs b/htest/Test/Ganeti/Types.hs index 1f3c97470..790f94819 100644 --- a/htest/Test/Ganeti/Types.hs +++ b/htest/Test/Ganeti/Types.hs @@ -107,6 +107,8 @@ $(genArbitrary ''NetworkType) $(genArbitrary ''NICMode) +$(genArbitrary ''FinalizedJobStatus) + -- * Properties prop_AllocPolicy_serialisation :: AllocPolicy -> Property @@ -257,6 +259,18 @@ case_NICMode_pyequiv = do all_hs_codes = sort $ map Types.nICModeToRaw [minBound..maxBound] assertEqual "for NICMode equivalence" all_py_codes all_hs_codes +-- | Test 'FinalizedJobStatus' serialisation. +prop_FinalizedJobStatus_serialisation :: FinalizedJobStatus -> Property +prop_FinalizedJobStatus_serialisation = testSerialisation + +-- | Tests equivalence with Python, based on Constants.hs code. +case_FinalizedJobStatus_pyequiv :: Assertion +case_FinalizedJobStatus_pyequiv = do + let all_py_codes = sort C.jobsFinalized + all_hs_codes = sort $ map Types.finalizedJobStatusToRaw + [minBound..maxBound] + assertEqual "for FinalizedJobStatus equivalence" all_py_codes all_hs_codes + testSuite "Types" [ 'prop_AllocPolicy_serialisation , 'prop_DiskTemplate_serialisation @@ -288,4 +302,6 @@ testSuite "Types" , 'case_NetworkType_pyequiv , 'prop_NICMode_serialisation , 'case_NICMode_pyequiv + , 'prop_FinalizedJobStatus_serialisation + , 'case_FinalizedJobStatus_pyequiv ] diff --git a/htools/Ganeti/Types.hs b/htools/Ganeti/Types.hs index 84e2ab62a..90df5656f 100644 --- a/htools/Ganeti/Types.hs +++ b/htools/Ganeti/Types.hs @@ -71,6 +71,8 @@ module Ganeti.Types , networkTypeToRaw , NICMode(..) , nICModeToRaw + , FinalizedJobStatus(..) + , finalizedJobStatusToRaw ) where import qualified Text.JSON as JSON @@ -332,3 +334,11 @@ $(THH.declareSADT "NICMode" , ("NMRouted", 'C.nicModeRouted) ]) $(THH.makeJSONInstance ''NICMode) + +-- | Finalized job status. +$(THH.declareSADT "FinalizedJobStatus" + [ ("JobStatusCanceled", 'C.jobStatusCanceled) + , ("JobStatusSuccessful", 'C.jobStatusSuccess) + , ("JobStatusFailed", 'C.jobStatusError) + ]) +$(THH.makeJSONInstance ''FinalizedJobStatus) -- GitLab