Revision aff363a4
b/Ganeti/HTools/Rapi.hs | ||
---|---|---|
33 | 33 |
_ -> Left $ printf "Curl error for '%s', error %s" |
34 | 34 |
url (show code)) |
35 | 35 |
|
36 |
tryRapi :: String -> String -> IO (Either String String) |
|
37 |
tryRapi url1 url2 = |
|
38 |
do |
|
39 |
body1 <- getUrl url1 |
|
40 |
(case body1 of |
|
41 |
Left _ -> getUrl url2 |
|
42 |
Right _ -> return body1) |
|
43 |
|
|
44 | 36 |
getInstances :: String -> IO (Either String String) |
45 |
getInstances master = |
|
46 |
let |
|
47 |
url2 = printf "https://%s:5080/2/instances?bulk=1" master |
|
48 |
url1 = printf "http://%s:5080/instances?bulk=1" master |
|
49 |
in do |
|
50 |
body <- tryRapi url1 url2 |
|
51 |
let inst = body `combineEithers` |
|
52 |
loadJSArray `combineEithers` |
|
53 |
(parseEitherList parseInstance) |
|
54 |
return inst |
|
37 |
getInstances master = do |
|
38 |
let url2 = printf "https://%s:5080/2/instances?bulk=1" master |
|
39 |
body <- getUrl url2 |
|
40 |
let inst = body `combineEithers` |
|
41 |
loadJSArray `combineEithers` |
|
42 |
(parseEitherList parseInstance) |
|
43 |
return inst |
|
55 | 44 |
|
56 | 45 |
getNodes :: String -> IO (Either String String) |
57 |
getNodes master = |
|
58 |
let |
|
59 |
url2 = printf "https://%s:5080/2/nodes?bulk=1" master |
|
60 |
url1 = printf "http://%s:5080/nodes?bulk=1" master |
|
61 |
in do |
|
62 |
body <- tryRapi url1 url2 |
|
63 |
let inst = body `combineEithers` |
|
64 |
loadJSArray `combineEithers` |
|
65 |
(parseEitherList parseNode) |
|
66 |
return inst |
|
46 |
getNodes master = do |
|
47 |
let url2 = printf "https://%s:5080/2/nodes?bulk=1" master |
|
48 |
body <- getUrl url2 |
|
49 |
let inst = body `combineEithers` |
|
50 |
loadJSArray `combineEithers` |
|
51 |
(parseEitherList parseNode) |
|
52 |
return inst |
|
67 | 53 |
|
68 | 54 |
parseInstance :: JSObject JSValue -> Either String String |
69 | 55 |
parseInstance a = |
Also available in: Unified diff