Revision bfa9a5d1 src/Ganeti/HTools/Instance.hs

b/src/Ganeti/HTools/Instance.hs
246 246
                              in if v < T.unitMem
247 247
                                 then Bad "out of memory"
248 248
                                 else Ok inst { mem = v }
249
shrinkByType inst T.FailDisk = let v = dsk inst - T.unitDsk
250
                               in if v < T.unitDsk
251
                                  then Bad "out of disk"
252
                                  else Ok inst { dsk = v }
249
shrinkByType inst T.FailDisk =
250
  let newdisks = map (flip (-) T.unitDsk) $ disks inst
251
      v = dsk inst - (length . disks $ inst) * T.unitDsk
252
  in if any (< T.unitDsk) newdisks
253
     then Bad "out of disk"
254
     else Ok inst { dsk = v, disks = newdisks }
253 255
shrinkByType inst T.FailCPU = let v = vcpus inst - T.unitCpu
254 256
                              in if v < T.unitCpu
255 257
                                 then Bad "out of vcpus"

Also available in: Unified diff