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