Revision ebf38064 htools/Ganeti/HTools/Rapi.hs
b/htools/Ganeti/HTools/Rapi.hs | ||
---|---|---|
26 | 26 |
{-# LANGUAGE BangPatterns, CPP #-} |
27 | 27 |
|
28 | 28 |
module Ganeti.HTools.Rapi |
29 |
( |
|
30 |
loadData |
|
31 |
, parseData |
|
32 |
) where |
|
29 |
( loadData |
|
30 |
, parseData |
|
31 |
) where |
|
33 | 32 |
|
34 | 33 |
import Data.Maybe (fromMaybe) |
35 | 34 |
#ifndef NO_CURL |
... | ... | |
76 | 75 |
-- | Append the default port if not passed in. |
77 | 76 |
formatHost :: String -> String |
78 | 77 |
formatHost master = |
79 |
if ':' `elem` master then master |
|
78 |
if ':' `elem` master |
|
79 |
then master |
|
80 | 80 |
else "https://" ++ master ++ ":" ++ show C.defaultRapiPort |
81 | 81 |
|
82 | 82 |
-- | Parse a instance list in JSON format. |
... | ... | |
84 | 84 |
-> String |
85 | 85 |
-> Result [(String, Instance.Instance)] |
86 | 86 |
getInstances ktn body = |
87 |
loadJSArray "Parsing instance data" body >>=
|
|
88 |
mapM (parseInstance ktn . fromJSObject)
|
|
87 |
loadJSArray "Parsing instance data" body >>= |
|
88 |
mapM (parseInstance ktn . fromJSObject) |
|
89 | 89 |
|
90 | 90 |
-- | Parse a node list in JSON format. |
91 | 91 |
getNodes :: NameAssoc -> String -> Result [(String, Node.Node)] |
92 | 92 |
getNodes ktg body = loadJSArray "Parsing node data" body >>= |
93 |
mapM (parseNode ktg . fromJSObject) |
|
93 |
mapM (parseNode ktg . fromJSObject)
|
|
94 | 94 |
|
95 | 95 |
-- | Parse a group list in JSON format. |
96 | 96 |
getGroups :: String -> Result [(String, Group.Group)] |
97 | 97 |
getGroups body = loadJSArray "Parsing group data" body >>= |
98 |
mapM (parseGroup . fromJSObject) |
|
98 |
mapM (parseGroup . fromJSObject)
|
|
99 | 99 |
|
100 | 100 |
-- | Construct an instance from a JSON object. |
101 | 101 |
parseInstance :: NameAssoc |
Also available in: Unified diff