Revision e2af3156 Ganeti/HTools/Cluster.hs

b/Ganeti/HTools/Cluster.hs
144 144
    (bad_nodes, bad_instances)
145 145

  
146 146
-- | Compute the total free disk and memory in the cluster.
147
totalResources :: Node.List -> (Int, Int)
147
totalResources :: Node.List -> (Int, Int, Int, Int, Int)
148 148
totalResources nl =
149 149
    foldl'
150
    (\ (mem, dsk) node -> (mem + (Node.f_mem node),
151
                           dsk + (Node.f_dsk node)))
152
    (0, 0) (Container.elems nl)
150
    (\ (mem, dsk, amem, mmem, mdsk) node ->
151
         let inc_amem = (Node.f_mem node) - (Node.r_mem node)
152
         in (mem + (Node.f_mem node),
153
             dsk + (Node.f_dsk node),
154
             amem + (if inc_amem > 0 then inc_amem else 0),
155
             max mmem inc_amem,
156
             max mdsk (Node.f_dsk node)
157
            )
158
    ) (0, 0, 0, 0, 0) (Container.elems nl)
153 159

  
154 160
-- | Compute the mem and disk covariance.
155 161
compDetailedCV :: Node.List -> (Double, Double, Double, Double, Double, Double)

Also available in: Unified diff