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