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