Revision 78694255 Ganeti/HTools/Loader.hs
b/Ganeti/HTools/Loader.hs | ||
---|---|---|
36 | 36 |
, Request(..) |
37 | 37 |
) where |
38 | 38 |
|
39 |
import Data.Function (on) |
|
39 | 40 |
import Data.List |
40 | 41 |
import Data.Maybe (fromJust) |
41 | 42 |
import Text.Printf (printf) |
... | ... | |
88 | 89 |
unzip . map (\ (idx, (k, v)) -> ((k, idx), (idx, setIdx v idx))) |
89 | 90 |
. zip [0..] |
90 | 91 |
|
92 |
-- | Assoc element comparator |
|
93 |
assocEqual :: (Eq a) => (a, b) -> (a, b) -> Bool |
|
94 |
assocEqual = (==) `on` fst |
|
95 |
|
|
91 | 96 |
-- | For each instance, add its index to its primary and secondary nodes. |
92 | 97 |
fixNodes :: [(Ndx, Node.Node)] |
93 | 98 |
-> [(Idx, Instance.Instance)] |
... | ... | |
95 | 100 |
fixNodes nl il = |
96 | 101 |
foldl' (\accu (idx, inst) -> |
97 | 102 |
let |
98 |
assocEqual = (\ (i, _) (j, _) -> i == j) |
|
99 | 103 |
pdx = Instance.pnode inst |
100 | 104 |
sdx = Instance.snode inst |
101 | 105 |
pold = fromJust $ lookup pdx accu |
... | ... | |
169 | 173 |
- (nodeIdsk node il) |
170 | 174 |
newn = Node.setFmem (Node.setXmem node delta_mem) |
171 | 175 |
(Node.f_mem node - adj_mem) |
172 |
umsg1 = if delta_mem > 512 || delta_dsk > 1024 |
|
173 |
then [printf "node %s is missing %d MB ram \ |
|
174 |
\and %d GB disk" |
|
175 |
nname delta_mem (delta_dsk `div` 1024)] |
|
176 |
else []
|
|
176 |
umsg1 = (if delta_mem > 512 || delta_dsk > 1024
|
|
177 |
then [printf "node %s is missing %d MB ram \
|
|
178 |
\and %d GB disk"
|
|
179 |
nname delta_mem (delta_dsk `div` 1024)]
|
|
180 |
else [])::[String]
|
|
177 | 181 |
in (msgs ++ umsg1, newn) |
178 | 182 |
) [] nl |
179 | 183 |
|
Also available in: Unified diff