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>
Thu, 22 Oct 2015 14:21:26 +0000 (16:21 +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: 49644203
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

src/Ganeti/HTools/Backend/Luxi.hs

index a6fd582..771fcc5 100644 (file)
@@ -236,8 +236,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.setNodeTags xtags $