Revision c22d4dd4
b/htools/Ganeti/HTools/QC.hs | ||
---|---|---|
97 | 97 |
maxCpu :: Int |
98 | 98 |
maxCpu = 1024 |
99 | 99 |
|
100 |
-- | Max vcpu ratio (random value). |
|
101 |
maxVcpuRatio :: Double |
|
102 |
maxVcpuRatio = 1024.0 |
|
103 |
|
|
104 |
-- | Max spindle ratio (random value). |
|
105 |
maxSpindleRatio :: Double |
|
106 |
maxSpindleRatio = 1024.0 |
|
107 |
|
|
100 | 108 |
-- | All disk templates (used later) |
101 | 109 |
allDiskTemplates :: [Types.DiskTemplate] |
102 | 110 |
allDiskTemplates = [minBound..maxBound] |
... | ... | |
122 | 130 |
, Types.iSpecNicCount = 1 |
123 | 131 |
} |
124 | 132 |
, Types.iPolicyDiskTemplates = [Types.DTDrbd8, Types.DTPlain] |
125 |
, Types.iPolicyVcpuRatio = 1024 -- somewhat random value, high |
|
126 |
-- enough to not impact us |
|
133 |
, Types.iPolicyVcpuRatio = maxVcpuRatio -- somewhat random value, high |
|
134 |
-- enough to not impact us |
|
135 |
, Types.iPolicySpindleRatio = maxSpindleRatio |
|
127 | 136 |
} |
128 | 137 |
|
129 | 138 |
|
... | ... | |
441 | 450 |
imax <- genBiggerISpec istd |
442 | 451 |
num_tmpl <- choose (0, length allDiskTemplates) |
443 | 452 |
dts <- genUniquesList num_tmpl |
444 |
vcpu_ratio <- arbitrary |
|
453 |
vcpu_ratio <- choose (1.0, maxVcpuRatio) |
|
454 |
spindle_ratio <- choose (1.0, maxSpindleRatio) |
|
445 | 455 |
return Types.IPolicy { Types.iPolicyMinSpec = imin |
446 | 456 |
, Types.iPolicyStdSpec = istd |
447 | 457 |
, Types.iPolicyMaxSpec = imax |
448 | 458 |
, Types.iPolicyDiskTemplates = dts |
449 | 459 |
, Types.iPolicyVcpuRatio = vcpu_ratio |
460 |
, Types.iPolicySpindleRatio = spindle_ratio |
|
450 | 461 |
} |
451 | 462 |
|
452 | 463 |
-- * Actual tests |
b/htools/Ganeti/HTools/Text.hs | ||
---|---|---|
128 | 128 |
-- | Generate policy data from a given policy object. |
129 | 129 |
serializeIPolicy :: String -> IPolicy -> String |
130 | 130 |
serializeIPolicy owner ipol = |
131 |
let IPolicy stdspec minspec maxspec dts vcpu_ratio = ipol |
|
131 |
let IPolicy stdspec minspec maxspec dts vcpu_ratio spindle_ratio = ipol
|
|
132 | 132 |
strings = [ owner |
133 | 133 |
, serializeISpec stdspec |
134 | 134 |
, serializeISpec minspec |
135 | 135 |
, serializeISpec maxspec |
136 | 136 |
, serializeDiskTemplates dts |
137 | 137 |
, show vcpu_ratio |
138 |
, show spindle_ratio |
|
138 | 139 |
] |
139 | 140 |
in intercalate "|" strings |
140 | 141 |
|
... | ... | |
236 | 237 |
|
237 | 238 |
-- | Loads an ipolicy from a field list. |
238 | 239 |
loadIPolicy :: [String] -> Result (String, IPolicy) |
239 |
loadIPolicy [owner, stdspec, minspec, maxspec, dtemplates, vcpu_ratio] = do |
|
240 |
loadIPolicy [owner, stdspec, minspec, maxspec, dtemplates, |
|
241 |
vcpu_ratio, spindle_ratio] = do |
|
240 | 242 |
xstdspec <- loadISpec (owner ++ "/stdspec") (commaSplit stdspec) |
241 | 243 |
xminspec <- loadISpec (owner ++ "/minspec") (commaSplit minspec) |
242 | 244 |
xmaxspec <- loadISpec (owner ++ "/maxspec") (commaSplit maxspec) |
243 | 245 |
xdts <- mapM diskTemplateFromRaw $ commaSplit dtemplates |
244 | 246 |
xvcpu_ratio <- tryRead (owner ++ "/vcpu_ratio") vcpu_ratio |
245 |
return $ (owner, IPolicy xstdspec xminspec xmaxspec xdts xvcpu_ratio) |
|
247 |
xspindle_ratio <- tryRead (owner ++ "/spindle_ratio") spindle_ratio |
|
248 |
return $ (owner, IPolicy xstdspec xminspec xmaxspec xdts |
|
249 |
xvcpu_ratio xspindle_ratio) |
|
246 | 250 |
loadIPolicy s = fail $ "Invalid ipolicy data: '" ++ show s ++ "'" |
247 | 251 |
|
248 | 252 |
loadOnePolicy :: (IPolicy, Group.List) -> String |
b/htools/Ganeti/HTools/Types.hs | ||
---|---|---|
217 | 217 |
THH.simpleField C.ipolicyDts [t| [DiskTemplate] |] |
218 | 218 |
, THH.renameField "VcpuRatio" $ |
219 | 219 |
THH.simpleField C.ipolicyVcpuRatio [t| Double |] |
220 |
, THH.renameField "SpindleRatio" $ |
|
221 |
THH.simpleField C.ipolicySpindleRatio [t| Double |] |
|
220 | 222 |
]) |
221 | 223 |
|
222 | 224 |
-- | Converts an ISpec type to a RSpec one. |
... | ... | |
236 | 238 |
-- htools, we are mostly looking at DRBD |
237 | 239 |
, iPolicyDiskTemplates = [DTDrbd8, DTPlain] |
238 | 240 |
, iPolicyVcpuRatio = C.ipolicyDefaultsVcpuRatio |
241 |
, iPolicySpindleRatio = C.ipolicyDefaultsSpindleRatio |
|
239 | 242 |
} |
240 | 243 |
|
241 | 244 |
-- | The dynamic resource specs of a machine (i.e. load or load |
Also available in: Unified diff