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