Revision a4a6e623

b/Ganeti/HTools/Node.hs
340 340
        new_load = utilLoad t `T.addUtil` Instance.util inst
341 341
        inst_tags = Instance.tags inst
342 342
        old_tags = pTags t
343
    in if new_mem <= 0 then T.OpFail T.FailMem
344
       else if new_dsk <= 0 || mDsk t > new_dp then T.OpFail T.FailDisk
345
       else if new_failn1 && not (failN1 t) then T.OpFail T.FailMem
346
       else if l_cpu >= 0 && l_cpu < new_pcpu then T.OpFail T.FailCPU
347
       else if rejectAddTags old_tags inst_tags
348
            then T.OpFail T.FailTags
349
       else
350
           let new_plist = iname:pList t
351
               new_mp = fromIntegral new_mem / tMem t
352
               r = t { pList = new_plist, fMem = new_mem, fDsk = new_dsk
353
                     , failN1 = new_failn1, pMem = new_mp, pDsk = new_dp
354
                     , uCpu = new_ucpu, pCpu = new_pcpu, utilLoad = new_load
355
                     , pTags = addTags old_tags inst_tags }
356
           in T.OpGood r
343
    in case () of
344
         _ | new_mem <= 0 -> T.OpFail T.FailMem
345
           | new_dsk <= 0 || mDsk t > new_dp -> T.OpFail T.FailDisk
346
           | new_failn1 && not (failN1 t) -> T.OpFail T.FailMem
347
           | l_cpu >= 0 && l_cpu < new_pcpu -> T.OpFail T.FailCPU
348
           | rejectAddTags old_tags inst_tags -> T.OpFail T.FailTags
349
           | otherwise ->
350
               let new_plist = iname:pList t
351
                   new_mp = fromIntegral new_mem / tMem t
352
                   r = t { pList = new_plist, fMem = new_mem, fDsk = new_dsk
353
                         , failN1 = new_failn1, pMem = new_mp, pDsk = new_dp
354
                         , uCpu = new_ucpu, pCpu = new_pcpu
355
                         , utilLoad = new_load
356
                         , pTags = addTags old_tags inst_tags }
357
               in T.OpGood r
357 358

  
358 359
-- | Adds a secondary instance.
359 360
addSec :: Node -> Instance.Instance -> T.Ndx -> T.OpResult Node
......
371 372
        old_load = utilLoad t
372 373
        new_load = old_load { T.dskWeight = T.dskWeight old_load +
373 374
                                            T.dskWeight (Instance.util inst) }
374
    in if new_dsk <= 0 || mDsk t > new_dp then T.OpFail T.FailDisk
375
       else if new_failn1 && not (failN1 t) then T.OpFail T.FailMem
376
       else let new_slist = iname:sList t
377
                r = t { sList = new_slist, fDsk = new_dsk
378
                      , peers = new_peers, failN1 = new_failn1
379
                      , rMem = new_rmem, pDsk = new_dp
380
                      , pRem = new_prem, utilLoad = new_load }
381
            in T.OpGood r
375
    in case () of
376
         _ | new_dsk <= 0 || mDsk t > new_dp -> T.OpFail T.FailDisk
377
           | new_failn1 && not (failN1 t) -> T.OpFail T.FailMem
378
           | otherwise ->
379
               let new_slist = iname:sList t
380
                   r = t { sList = new_slist, fDsk = new_dsk
381
                         , peers = new_peers, failN1 = new_failn1
382
                         , rMem = new_rmem, pDsk = new_dp
383
                         , pRem = new_prem, utilLoad = new_load }
384
               in T.OpGood r
382 385

  
383 386
-- * Stats functions
384 387

  

Also available in: Unified diff