From fd958a3d1ebc204e317d2e0454347fb89e159a9d Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Mon, 10 Dec 2012 19:35:09 +0100 Subject: [PATCH] Abstract code related to job ID creation Having makeJobIdS as a separate function will allow us to use it outside of json encoding. The patch also exports one more function from the Types module. Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: Michele Tartara <mtartara@google.com> --- htools/Ganeti/Types.hs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/htools/Ganeti/Types.hs b/htools/Ganeti/Types.hs index 850114c1a..0297412f7 100644 --- a/htools/Ganeti/Types.hs +++ b/htools/Ganeti/Types.hs @@ -82,10 +82,12 @@ module Ganeti.Types , JobId , fromJobId , makeJobId + , makeJobIdS , RelativeJobId , JobIdDep(..) , JobDependency(..) , OpSubmitPriority(..) + , opSubmitPriorityToRaw , OpStatus(..) , opStatusToRaw , opStatusFromRaw @@ -402,10 +404,13 @@ makeJobId :: (Monad m) => Int -> m JobId makeJobId i | i >= 0 = return $ JobId i | otherwise = fail $ "Invalid value for job ID ' " ++ show i ++ "'" +-- | Builds a job ID from a string. +makeJobIdS :: (Monad m) => String -> m JobId +makeJobIdS s = tryRead "parsing job id" s >>= makeJobId + -- | Parses a job ID. parseJobId :: (Monad m) => JSON.JSValue -> m JobId -parseJobId (JSON.JSString x) = - tryRead "parsing job id" (JSON.fromJSString x) >>= makeJobId +parseJobId (JSON.JSString x) = makeJobIdS $ JSON.fromJSString x parseJobId (JSON.JSRational _ x) = if denominator x /= 1 then fail $ "Got fractional job ID from master daemon?! Value:" ++ show x -- GitLab