Revision 6402a260 Ganeti/HTools/Rapi.hs

b/Ganeti/HTools/Rapi.hs
34 34
import Data.List
35 35
import Control.Monad
36 36
import Text.JSON (JSObject, JSValue, fromJSObject, decodeStrict)
37
import Text.JSON.Types (JSValue(..))
37 38
import Text.Printf (printf)
38 39

  
39 40
import Ganeti.HTools.Utils
......
78 79
              -> Result (String, Instance.Instance)
79 80
parseInstance ktn a = do
80 81
  name <- tryFromObj "Parsing new instance" a "name"
81
  let extract s x = tryFromObj ("Instance '" ++ name ++ "'") x s
82
  let owner_name = "Instance '" ++ name ++ "'"
83
  let extract s x = tryFromObj owner_name x s
82 84
  disk <- extract "disk_usage" a
83 85
  beparams <- liftM fromJSObject (extract "beparams" a)
84
  mem <- extract "memory" beparams
86
  omem <- extract "oper_ram" a
87
  mem <- (case omem of
88
            JSRational _ _ -> annotateResult owner_name (fromJVal omem)
89
            _ -> extract "memory" beparams)
85 90
  vcpus <- extract "vcpus" beparams
86 91
  pnode <- extract "pnode" a >>= lookupNode ktn name
87 92
  snodes <- extract "snodes" a

Also available in: Unified diff