diff --git a/htools/Ganeti/HTools/JSON.hs b/htools/Ganeti/HTools/JSON.hs index 2667f80a3a0b984fcf30a44cd11bfb14a929ba24..3e2b0dc9b4d16b33f1bc285986664472f39eb867 100644 --- a/htools/Ganeti/HTools/JSON.hs +++ b/htools/Ganeti/HTools/JSON.hs @@ -46,6 +46,7 @@ import qualified Data.Map as Map import Text.Printf (printf) import qualified Text.JSON as J +import Text.JSON.Pretty (pp_value) import Ganeti.BasicTypes @@ -120,7 +121,7 @@ fromKeyValue k val = fromJVal :: (Monad m, J.JSON a) => J.JSValue -> m a fromJVal v = case J.readJSON v of - J.Error s -> fail ("Cannot convert value '" ++ show v ++ + J.Error s -> fail ("Cannot convert value '" ++ show (pp_value v) ++ "', error: " ++ s) J.Ok x -> return x @@ -145,7 +146,8 @@ tryFromObj t o = annotateResult t . fromObj o -- | Ensure a given JSValue is actually a JSArray. toArray :: (Monad m) => J.JSValue -> m [J.JSValue] toArray (J.JSArray arr) = return arr -toArray o = fail $ "Invalid input, expected array but got " ++ show o +toArray o = + fail $ "Invalid input, expected array but got " ++ show (pp_value o) -- * Container type (special type for JSON serialisation) @@ -170,4 +172,4 @@ instance (J.JSON a) => J.JSON (Container a) where showJSON = showContainer readJSON (J.JSObject o) = readContainer o readJSON v = fail $ "Failed to load container, expected object but got " - ++ show v + ++ show (pp_value v)