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