Make htools tolerate missing "spfree" on luxi
authorKlaus Aehlig <aehlig@google.com>
Mon, 7 Jul 2014 12:58:44 +0000 (14:58 +0200)
committerKlaus Aehlig <aehlig@google.com>
Mon, 7 Jul 2014 13:09:05 +0000 (15:09 +0200)
If a cluster allows sharedfile as only disk template, the
amount of free spindles might not be available. This is
perfectly normal, hence the luxi backend of htools should
handle this case gracefully and just report 0 available spindles.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

src/Ganeti/HTools/Backend/Luxi.hs

index bd04d60..669d9aa 100644 (file)
@@ -220,7 +220,10 @@ parseNode ktg [ name, mtotal, mnode, mfree, dtotal, dfree
   xsptotal <- if xexcl_stor
               then lvconvert 0 "sptotal" sptotal
               else convert "spindles" spindles
-  xspfree <- lvconvert 0 "spfree" spfree
+  xspfree <- genericResult (const $ return (0 :: Int)) return
+               $ lvconvert 0 "spfree" spfree
+               -- "spfree" might be missing, if sharedfile is the only
+               -- supported disk template
   xmtotal <- lvconvert 0.0 "mtotal" mtotal
   xmnode <- lvconvert 0 "mnode" mnode
   xmfree <- lvconvert 0 "mfree" mfree