Skip to content
Snippets Groups Projects
Commit a4a6e623 authored by Iustin Pop's avatar Iustin Pop
Browse files

Rewrite the node add checks for simpler layout

This will make it clearer than many if…then choices.
parent a804261a
No related branches found
No related tags found
No related merge requests found
...@@ -340,20 +340,21 @@ addPri t inst = ...@@ -340,20 +340,21 @@ addPri t inst =
new_load = utilLoad t `T.addUtil` Instance.util inst new_load = utilLoad t `T.addUtil` Instance.util inst
inst_tags = Instance.tags inst inst_tags = Instance.tags inst
old_tags = pTags t old_tags = pTags t
in if new_mem <= 0 then T.OpFail T.FailMem in case () of
else if new_dsk <= 0 || mDsk t > new_dp then T.OpFail T.FailDisk _ | new_mem <= 0 -> T.OpFail T.FailMem
else if new_failn1 && not (failN1 t) then T.OpFail T.FailMem | new_dsk <= 0 || mDsk t > new_dp -> T.OpFail T.FailDisk
else if l_cpu >= 0 && l_cpu < new_pcpu then T.OpFail T.FailCPU | new_failn1 && not (failN1 t) -> T.OpFail T.FailMem
else if rejectAddTags old_tags inst_tags | l_cpu >= 0 && l_cpu < new_pcpu -> T.OpFail T.FailCPU
then T.OpFail T.FailTags | rejectAddTags old_tags inst_tags -> T.OpFail T.FailTags
else | otherwise ->
let new_plist = iname:pList t let new_plist = iname:pList t
new_mp = fromIntegral new_mem / tMem t new_mp = fromIntegral new_mem / tMem t
r = t { pList = new_plist, fMem = new_mem, fDsk = new_dsk r = t { pList = new_plist, fMem = new_mem, fDsk = new_dsk
, failN1 = new_failn1, pMem = new_mp, pDsk = new_dp , failN1 = new_failn1, pMem = new_mp, pDsk = new_dp
, uCpu = new_ucpu, pCpu = new_pcpu, utilLoad = new_load , uCpu = new_ucpu, pCpu = new_pcpu
, pTags = addTags old_tags inst_tags } , utilLoad = new_load
in T.OpGood r , pTags = addTags old_tags inst_tags }
in T.OpGood r
-- | Adds a secondary instance. -- | Adds a secondary instance.
addSec :: Node -> Instance.Instance -> T.Ndx -> T.OpResult Node addSec :: Node -> Instance.Instance -> T.Ndx -> T.OpResult Node
...@@ -371,14 +372,16 @@ addSec t inst pdx = ...@@ -371,14 +372,16 @@ addSec t inst pdx =
old_load = utilLoad t old_load = utilLoad t
new_load = old_load { T.dskWeight = T.dskWeight old_load + new_load = old_load { T.dskWeight = T.dskWeight old_load +
T.dskWeight (Instance.util inst) } T.dskWeight (Instance.util inst) }
in if new_dsk <= 0 || mDsk t > new_dp then T.OpFail T.FailDisk in case () of
else if new_failn1 && not (failN1 t) then T.OpFail T.FailMem _ | new_dsk <= 0 || mDsk t > new_dp -> T.OpFail T.FailDisk
else let new_slist = iname:sList t | new_failn1 && not (failN1 t) -> T.OpFail T.FailMem
r = t { sList = new_slist, fDsk = new_dsk | otherwise ->
, peers = new_peers, failN1 = new_failn1 let new_slist = iname:sList t
, rMem = new_rmem, pDsk = new_dp r = t { sList = new_slist, fDsk = new_dsk
, pRem = new_prem, utilLoad = new_load } , peers = new_peers, failN1 = new_failn1
in T.OpGood r , rMem = new_rmem, pDsk = new_dp
, pRem = new_prem, utilLoad = new_load }
in T.OpGood r
-- * Stats functions -- * Stats functions
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment