X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/6a062ff9c15c41c9f495966d6e9cfdee882fb1a4..309e7c9a6b5e6b83395253fef033af9df49fefbf:/htools/Ganeti/HTools/Rapi.hs diff --git a/htools/Ganeti/HTools/Rapi.hs b/htools/Ganeti/HTools/Rapi.hs index fbcbf4b..444934d 100644 --- a/htools/Ganeti/HTools/Rapi.hs +++ b/htools/Ganeti/HTools/Rapi.hs @@ -37,7 +37,7 @@ import Network.Curl import Network.Curl.Types () #endif import Control.Monad -import Text.JSON (JSObject, JSValue, fromJSObject, decodeStrict) +import Text.JSON (JSObject, fromJSObject, decodeStrict) import Text.JSON.Types (JSValue(..)) import Text.Printf (printf) @@ -47,6 +47,7 @@ import Ganeti.HTools.Types import qualified Ganeti.HTools.Group as Group import qualified Ganeti.HTools.Node as Node import qualified Ganeti.HTools.Instance as Instance +import qualified Ganeti.Constants as C -- | Read an URL via curl and return the body if successful. getUrl :: (Monad m) => String -> IO (m String) @@ -76,7 +77,7 @@ getUrl url = do formatHost :: String -> String formatHost master = if ':' `elem` master then master - else "https://" ++ master ++ ":5080" + else "https://" ++ master ++ ":" ++ show C.defaultRapiPort -- | Parse a instance list in JSON format. getInstances :: NameAssoc @@ -103,7 +104,7 @@ getFakeGroups = -- | Construct an instance from a JSON object. parseInstance :: NameAssoc - -> [(String, JSValue)] + -> JSRecord -> Result (String, Instance.Instance) parseInstance ktn a = do name <- tryFromObj "Parsing new instance" a "name" @@ -128,7 +129,7 @@ parseInstance ktn a = do return (name, inst) -- | Construct a node from a JSON object. -parseNode :: NameAssoc -> [(String, JSValue)] -> Result (String, Node.Node) +parseNode :: NameAssoc -> JSRecord -> Result (String, Node.Node) parseNode ktg a = do name <- tryFromObj "Parsing new node" a "name" let desc = "Node '" ++ name ++ "', error while parsing data" @@ -153,7 +154,7 @@ parseNode ktg a = do return (name, node) -- | Construct a group from a JSON object. -parseGroup :: [(String, JSValue)] -> Result (String, Group.Group) +parseGroup :: JSRecord -> Result (String, Group.Group) parseGroup a = do name <- tryFromObj "Parsing new group" a "name" let extract s = tryFromObj ("Group '" ++ name ++ "'") a s