Revision c8b662f1

b/Ganeti/HTools/Rapi.hs
65 65
             -> String
66 66
             -> Result [(String, Instance.Instance)]
67 67
getInstances ktn body =
68
    loadJSArray body >>= mapM (parseInstance ktn . fromJSObject)
68
    loadJSArray "Parsing instance data" body >>=
69
    mapM (parseInstance ktn . fromJSObject)
69 70

  
70 71
-- | Parse a node list in JSON format.
71 72
getNodes :: String -> Result [(String, Node.Node)]
72
getNodes body = loadJSArray body >>= mapM (parseNode . fromJSObject)
73
getNodes body = loadJSArray "Parsing node data" body >>=
74
                mapM (parseNode . fromJSObject)
73 75

  
74 76
-- | Construct an instance from a JSON object.
75 77
parseInstance :: [(String, Ndx)]
b/Ganeti/HTools/Utils.hs
112 112
      _ -> fail "Wrong JSON type"
113 113

  
114 114
-- | Converts a JSON message into an array of JSON objects.
115
loadJSArray :: (Monad m) => String -> m [J.JSObject J.JSValue]
116
loadJSArray = fromJResult . J.decodeStrict
115
loadJSArray :: (Monad m)
116
               => String -- ^ Operation description (for error reporting)
117
               -> String -- ^ Input message
118
               -> m [J.JSObject J.JSValue]
119
loadJSArray s = annotateJResult s . J.decodeStrict
117 120

  
118 121
-- | Reads a the value of a key in a JSON object.
119 122
fromObj :: (J.JSON a, Monad m) => String -> [(String, J.JSValue)] -> m a

Also available in: Unified diff