Revision bfa9a5d1
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" |
b/test/hs/Test/Ganeti/HTools/Instance.hs | ||
---|---|---|
178 | 178 |
prop_shrinkDF :: Instance.Instance -> Property |
179 | 179 |
prop_shrinkDF inst = |
180 | 180 |
forAll (choose (0, 2 * Types.unitDsk - 1)) $ \dsk -> |
181 |
let inst' = inst { Instance.dsk = dsk } |
|
181 |
let inst' = inst { Instance.dsk = dsk, Instance.disks = [dsk] }
|
|
182 | 182 |
in isBad $ Instance.shrinkByType inst' Types.FailDisk |
183 | 183 |
|
184 | 184 |
prop_setMovable :: Instance.Instance -> Bool -> Property |
Also available in: Unified diff