Revision 6402a260

b/Ganeti/HTools/Luxi.hs
70 70
    let nnames = JSArray []
71 71
        fnames = ["name",
72 72
                  "disk_usage", "be/memory", "be/vcpus",
73
                  "status", "pnode", "snodes", "tags"]
73
                  "status", "pnode", "snodes", "tags", "oper_ram"]
74 74
        fields = JSArray $ map (JSString . toJSString) fnames
75 75
        use_locking = JSBool False
76 76
    in JSArray [nnames, fields, use_locking]
......
101 101
              -> JSValue
102 102
              -> Result (String, Instance.Instance)
103 103
parseInstance ktn (JSArray [ name, disk, mem, vcpus
104
                           , status, pnode, snodes, tags ]) = do
104
                           , status, pnode, snodes, tags, oram ]) = do
105 105
  xname <- annotateResult "Parsing new instance" (fromJVal name)
106 106
  let convert v = annotateResult ("Instance '" ++ xname ++ "'") (fromJVal v)
107 107
  xdisk <- convert disk
108
  xmem <- convert mem
108
  xmem <- (case oram of
109
             JSRational _ _ -> convert oram
110
             _ -> convert mem)
109 111
  xvcpus <- convert vcpus
110 112
  xpnode <- convert pnode >>= lookupNode ktn xname
111 113
  xsnodes <- convert snodes::Result [JSString]
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