Revision 7034694d htools/Ganeti/HTools/Cluster.hs
b/htools/Ganeti/HTools/Cluster.hs | ||
---|---|---|
120 | 120 |
data Table = Table Node.List Instance.List Score [Placement] |
121 | 121 |
deriving (Show, Read) |
122 | 122 |
|
123 |
data CStats = CStats { csFmem :: Int -- ^ Cluster free mem
|
|
124 |
, csFdsk :: Int -- ^ Cluster free disk
|
|
125 |
, csAmem :: Int -- ^ Cluster allocatable mem
|
|
126 |
, csAdsk :: Int -- ^ Cluster allocatable disk
|
|
127 |
, csAcpu :: Int -- ^ Cluster allocatable cpus
|
|
128 |
, csMmem :: Int -- ^ Max node allocatable mem
|
|
129 |
, csMdsk :: Int -- ^ Max node allocatable disk
|
|
130 |
, csMcpu :: Int -- ^ Max node allocatable cpu
|
|
131 |
, csImem :: Int -- ^ Instance used mem
|
|
132 |
, csIdsk :: Int -- ^ Instance used disk
|
|
133 |
, csIcpu :: Int -- ^ Instance used cpu
|
|
134 |
, csTmem :: Double -- ^ Cluster total mem |
|
135 |
, csTdsk :: Double -- ^ Cluster total disk |
|
136 |
, csTcpu :: Double -- ^ Cluster total cpus |
|
137 |
, csVcpu :: Int -- ^ Cluster virtual cpus (if
|
|
138 |
-- node pCpu has been set, |
|
139 |
-- otherwise -1) |
|
140 |
, csXmem :: Int -- ^ Unnacounted for mem
|
|
141 |
, csNmem :: Int -- ^ Node own memory
|
|
142 |
, csScore :: Score -- ^ The cluster score |
|
143 |
, csNinst :: Int -- ^ The total number of instances |
|
123 |
data CStats = CStats { csFmem :: Integer -- ^ Cluster free mem
|
|
124 |
, csFdsk :: Integer -- ^ Cluster free disk
|
|
125 |
, csAmem :: Integer -- ^ Cluster allocatable mem
|
|
126 |
, csAdsk :: Integer -- ^ Cluster allocatable disk
|
|
127 |
, csAcpu :: Integer -- ^ Cluster allocatable cpus
|
|
128 |
, csMmem :: Integer -- ^ Max node allocatable mem
|
|
129 |
, csMdsk :: Integer -- ^ Max node allocatable disk
|
|
130 |
, csMcpu :: Integer -- ^ Max node allocatable cpu
|
|
131 |
, csImem :: Integer -- ^ Instance used mem
|
|
132 |
, csIdsk :: Integer -- ^ Instance used disk
|
|
133 |
, csIcpu :: Integer -- ^ Instance used cpu
|
|
134 |
, csTmem :: Double -- ^ Cluster total mem
|
|
135 |
, csTdsk :: Double -- ^ Cluster total disk
|
|
136 |
, csTcpu :: Double -- ^ Cluster total cpus
|
|
137 |
, csVcpu :: Integer -- ^ Cluster virtual cpus (if
|
|
138 |
-- node pCpu has been set,
|
|
139 |
-- otherwise -1)
|
|
140 |
, csXmem :: Integer -- ^ Unnacounted for mem
|
|
141 |
, csNmem :: Integer -- ^ Node own memory
|
|
142 |
, csScore :: Score -- ^ The cluster score
|
|
143 |
, csNinst :: Int -- ^ The total number of instances
|
|
144 | 144 |
} |
145 | 145 |
deriving (Show, Read) |
146 | 146 |
|
... | ... | |
196 | 196 |
inc_vcpu = Node.hiCpu node |
197 | 197 |
inc_acpu = Node.availCpu node |
198 | 198 |
|
199 |
in cs { csFmem = x_fmem + Node.fMem node
|
|
200 |
, csFdsk = x_fdsk + Node.fDsk node
|
|
201 |
, csAmem = x_amem + inc_amem' |
|
202 |
, csAdsk = x_adsk + inc_adsk |
|
203 |
, csAcpu = x_acpu + inc_acpu |
|
204 |
, csMmem = max x_mmem inc_amem'
|
|
205 |
, csMdsk = max x_mdsk inc_adsk
|
|
206 |
, csMcpu = max x_mcpu inc_acpu
|
|
207 |
, csImem = x_imem + inc_imem |
|
208 |
, csIdsk = x_idsk + inc_idsk |
|
209 |
, csIcpu = x_icpu + inc_icpu |
|
199 |
in cs { csFmem = x_fmem + fromIntegral (Node.fMem node)
|
|
200 |
, csFdsk = x_fdsk + fromIntegral (Node.fDsk node)
|
|
201 |
, csAmem = x_amem + fromIntegral inc_amem'
|
|
202 |
, csAdsk = x_adsk + fromIntegral inc_adsk
|
|
203 |
, csAcpu = x_acpu + fromIntegral inc_acpu
|
|
204 |
, csMmem = max x_mmem (fromIntegral inc_amem')
|
|
205 |
, csMdsk = max x_mdsk (fromIntegral inc_adsk)
|
|
206 |
, csMcpu = max x_mcpu (fromIntegral inc_acpu)
|
|
207 |
, csImem = x_imem + fromIntegral inc_imem
|
|
208 |
, csIdsk = x_idsk + fromIntegral inc_idsk
|
|
209 |
, csIcpu = x_icpu + fromIntegral inc_icpu
|
|
210 | 210 |
, csTmem = x_tmem + Node.tMem node |
211 | 211 |
, csTdsk = x_tdsk + Node.tDsk node |
212 | 212 |
, csTcpu = x_tcpu + Node.tCpu node |
213 |
, csVcpu = x_vcpu + inc_vcpu |
|
214 |
, csXmem = x_xmem + Node.xMem node
|
|
215 |
, csNmem = x_nmem + Node.nMem node
|
|
213 |
, csVcpu = x_vcpu + fromIntegral inc_vcpu
|
|
214 |
, csXmem = x_xmem + fromIntegral (Node.xMem node)
|
|
215 |
, csNmem = x_nmem + fromIntegral (Node.nMem node)
|
|
216 | 216 |
, csNinst = x_ninst + length (Node.pList node) |
217 | 217 |
} |
218 | 218 |
|
... | ... | |
233 | 233 |
let CStats {csImem = i_imem, csIdsk = i_idsk, csIcpu = i_icpu} = cini |
234 | 234 |
CStats {csImem = f_imem, csIdsk = f_idsk, csIcpu = f_icpu, |
235 | 235 |
csTmem = t_mem, csTdsk = t_dsk, csVcpu = v_cpu } = cfin |
236 |
rini = RSpec i_icpu i_imem i_idsk |
|
237 |
rfin = RSpec (f_icpu - i_icpu) (f_imem - i_imem) (f_idsk - i_idsk) |
|
238 |
un_cpu = v_cpu - f_icpu |
|
239 |
runa = RSpec un_cpu (truncate t_mem - f_imem) (truncate t_dsk - f_idsk) |
|
236 |
rini = RSpec (fromIntegral i_icpu) (fromIntegral i_imem) |
|
237 |
(fromIntegral i_idsk) |
|
238 |
rfin = RSpec (fromIntegral (f_icpu - i_icpu)) |
|
239 |
(fromIntegral (f_imem - i_imem)) |
|
240 |
(fromIntegral (f_idsk - i_idsk)) |
|
241 |
un_cpu = fromIntegral (v_cpu - f_icpu)::Int |
|
242 |
runa = RSpec un_cpu (truncate t_mem - fromIntegral f_imem) |
|
243 |
(truncate t_dsk - fromIntegral f_idsk) |
|
240 | 244 |
in (rini, rfin, runa) |
241 | 245 |
|
242 | 246 |
-- | The names and weights of the individual elements in the CV list |
Also available in: Unified diff