Revision 28f19313 htools/Ganeti/HTools/Rapi.hs
b/htools/Ganeti/HTools/Rapi.hs | ||
---|---|---|
37 | 37 |
import Network.Curl.Types () |
38 | 38 |
#endif |
39 | 39 |
import Control.Monad |
40 |
import Text.JSON (JSObject, JSValue, fromJSObject, decodeStrict)
|
|
40 |
import Text.JSON (JSObject, fromJSObject, decodeStrict) |
|
41 | 41 |
import Text.JSON.Types (JSValue(..)) |
42 | 42 |
import Text.Printf (printf) |
43 | 43 |
|
... | ... | |
104 | 104 |
|
105 | 105 |
-- | Construct an instance from a JSON object. |
106 | 106 |
parseInstance :: NameAssoc |
107 |
-> [(String, JSValue)]
|
|
107 |
-> JSRecord
|
|
108 | 108 |
-> Result (String, Instance.Instance) |
109 | 109 |
parseInstance ktn a = do |
110 | 110 |
name <- tryFromObj "Parsing new instance" a "name" |
... | ... | |
129 | 129 |
return (name, inst) |
130 | 130 |
|
131 | 131 |
-- | Construct a node from a JSON object. |
132 |
parseNode :: NameAssoc -> [(String, JSValue)] -> Result (String, Node.Node)
|
|
132 |
parseNode :: NameAssoc -> JSRecord -> Result (String, Node.Node)
|
|
133 | 133 |
parseNode ktg a = do |
134 | 134 |
name <- tryFromObj "Parsing new node" a "name" |
135 | 135 |
let desc = "Node '" ++ name ++ "', error while parsing data" |
... | ... | |
154 | 154 |
return (name, node) |
155 | 155 |
|
156 | 156 |
-- | Construct a group from a JSON object. |
157 |
parseGroup :: [(String, JSValue)] -> Result (String, Group.Group)
|
|
157 |
parseGroup :: JSRecord -> Result (String, Group.Group)
|
|
158 | 158 |
parseGroup a = do |
159 | 159 |
name <- tryFromObj "Parsing new group" a "name" |
160 | 160 |
let extract s = tryFromObj ("Group '" ++ name ++ "'") a s |
Also available in: Unified diff