Revision 10f055ac
b/htools/Ganeti/HTools/Node.hs | ||
---|---|---|
327 | 327 |
removeSec :: Node -> Instance.Instance -> Node |
328 | 328 |
removeSec t inst = |
329 | 329 |
let iname = Instance.idx inst |
330 |
uses_disk = Instance.usesLocalStorage inst |
|
331 |
cur_dsk = fDsk t |
|
330 | 332 |
pnode = Instance.pNode inst |
331 | 333 |
new_slist = delete iname (sList t) |
332 |
new_dsk = fDsk t + Instance.dsk inst |
|
334 |
new_dsk = if uses_disk |
|
335 |
then cur_dsk + Instance.dsk inst |
|
336 |
else cur_dsk |
|
333 | 337 |
old_peers = peers t |
334 | 338 |
old_peem = P.find pnode old_peers |
335 | 339 |
new_peem = if Instance.autoBalance inst |
... | ... | |
368 | 372 |
-- or a failure mode |
369 | 373 |
addPriEx force t inst = |
370 | 374 |
let iname = Instance.idx inst |
375 |
uses_disk = Instance.usesLocalStorage inst |
|
376 |
cur_dsk = fDsk t |
|
371 | 377 |
new_mem = fMem t - Instance.mem inst |
372 |
new_dsk = fDsk t - Instance.dsk inst |
|
378 |
new_dsk = if uses_disk |
|
379 |
then cur_dsk - Instance.dsk inst |
|
380 |
else cur_dsk |
|
373 | 381 |
new_failn1 = new_mem <= rMem t |
374 | 382 |
new_ucpu = uCpu t + Instance.vcpus inst |
375 | 383 |
new_pcpu = fromIntegral new_ucpu / tCpu t |
... | ... | |
381 | 389 |
strict = not force |
382 | 390 |
in case () of |
383 | 391 |
_ | new_mem <= 0 -> T.OpFail T.FailMem |
384 |
| new_dsk <= 0 -> T.OpFail T.FailDisk |
|
385 |
| mDsk t > new_dp && strict -> T.OpFail T.FailDisk |
|
392 |
| uses_disk && new_dsk <= 0 -> T.OpFail T.FailDisk
|
|
393 |
| uses_disk && mDsk t > new_dp && strict -> T.OpFail T.FailDisk
|
|
386 | 394 |
| new_failn1 && not (failN1 t) && strict -> T.OpFail T.FailMem |
387 | 395 |
| l_cpu >= 0 && l_cpu < new_pcpu && strict -> T.OpFail T.FailCPU |
388 | 396 |
| rejectAddTags old_tags inst_tags -> T.OpFail T.FailTags |
... | ... | |
421 | 429 |
T.dskWeight (Instance.util inst) } |
422 | 430 |
strict = not force |
423 | 431 |
in case () of |
424 |
_ | new_dsk <= 0 -> T.OpFail T.FailDisk |
|
432 |
_ | not (Instance.hasSecondary inst) -> T.OpFail T.FailDisk |
|
433 |
| new_dsk <= 0 -> T.OpFail T.FailDisk |
|
425 | 434 |
| mDsk t > new_dp && strict -> T.OpFail T.FailDisk |
426 | 435 |
| secondary_needed_mem >= old_mem && strict -> T.OpFail T.FailMem |
427 | 436 |
| new_failn1 && not (failN1 t) && strict -> T.OpFail T.FailMem |
Also available in: Unified diff