On Wed, Dec 12, 2012 at 11:28 AM, Iustin Pop <ius...@google.com> wrote:

> 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 <ius...@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 560159d..6a36414 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
> @@ -401,10 +403,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
> --
> 1.7.10.4
>
>
LGTM.

Thanks,
Michele

Reply via email to