Make htools tolerate missing "dtotal" and "dfree" on luxi
authorKlaus Aehlig <aehlig@google.com>
Tue, 16 Jun 2015 09:15:48 +0000 (11:15 +0200)
committerKlaus Aehlig <aehlig@google.com>
Mon, 22 Jun 2015 16:29:49 +0000 (18:29 +0200)
If a cluster allows sharedfile as only disk template, the amount of
total and free disk space might not be available. This is perfectly
normal, hence make the luxi backend handle it gracefully and just report
0 available disk on 0 total disk.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

Cherry-picked-from: 49644203823562de0945de3feca5dfaa0cc2dc9c
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

src/Ganeti/HTools/Backend/Luxi.hs

index 94571fa..9ee80ca 100644 (file)
@@ -238,8 +238,12 @@ parseNode ktg [ name, mtotal, mnode, mfree, dtotal, dfree
   xmtotal <- lvconvert 0.0 "mtotal" mtotal
   xmnode <- lvconvert 0 "mnode" mnode
   xmfree <- lvconvert 0 "mfree" mfree
-  xdtotal <- lvconvert 0.0 "dtotal" dtotal
-  xdfree <- lvconvert 0 "dfree" dfree
+  let xdtotal = genericResult (const 0.0) id
+                  $ lvconvert 0.0 "dtotal" dtotal
+      xdfree = genericResult (const 0) id
+                 $ lvconvert 0 "dfree" dfree
+      -- "dtotal" and "dfree" might be missing, e.g., if sharedfile
+      -- is the only supported disk template
   xctotal <- lvconvert 0.0 "ctotal" ctotal
   xcnos <- lvconvert 0 "cnos" cnos
   let node = flip Node.setCpuSpeed xcpu_speed .