Revision a8038349 htools/Ganeti/HTools/Instance.hs
b/htools/Ganeti/HTools/Instance.hs | ||
---|---|---|
257 | 257 |
T.RSpec { T.rspecCpu = c, T.rspecMem = m, T.rspecDsk = d } |
258 | 258 |
|
259 | 259 |
-- | Checks if an instance is smaller than a given spec. Returns |
260 |
-- OpGood for a correct spec, otherwise OpFail one of the possible
|
|
260 |
-- OpGood for a correct spec, otherwise Bad one of the possible
|
|
261 | 261 |
-- failure modes. |
262 | 262 |
instBelowISpec :: Instance -> T.ISpec -> T.OpResult () |
263 | 263 |
instBelowISpec inst ispec |
264 |
| mem inst > T.iSpecMemorySize ispec = T.OpFail T.FailMem
|
|
265 |
| dsk inst > T.iSpecDiskSize ispec = T.OpFail T.FailDisk
|
|
266 |
| vcpus inst > T.iSpecCpuCount ispec = T.OpFail T.FailCPU
|
|
267 |
| otherwise = T.OpGood ()
|
|
264 |
| mem inst > T.iSpecMemorySize ispec = Bad T.FailMem
|
|
265 |
| dsk inst > T.iSpecDiskSize ispec = Bad T.FailDisk
|
|
266 |
| vcpus inst > T.iSpecCpuCount ispec = Bad T.FailCPU
|
|
267 |
| otherwise = Ok ()
|
|
268 | 268 |
|
269 | 269 |
-- | Checks if an instance is bigger than a given spec. |
270 | 270 |
instAboveISpec :: Instance -> T.ISpec -> T.OpResult () |
271 | 271 |
instAboveISpec inst ispec |
272 |
| mem inst < T.iSpecMemorySize ispec = T.OpFail T.FailMem
|
|
273 |
| dsk inst < T.iSpecDiskSize ispec = T.OpFail T.FailDisk
|
|
274 |
| vcpus inst < T.iSpecCpuCount ispec = T.OpFail T.FailCPU
|
|
275 |
| otherwise = T.OpGood ()
|
|
272 |
| mem inst < T.iSpecMemorySize ispec = Bad T.FailMem
|
|
273 |
| dsk inst < T.iSpecDiskSize ispec = Bad T.FailDisk
|
|
274 |
| vcpus inst < T.iSpecCpuCount ispec = Bad T.FailCPU
|
|
275 |
| otherwise = Ok ()
|
|
276 | 276 |
|
277 | 277 |
-- | Checks if an instance matches a policy. |
278 | 278 |
instMatchesPolicy :: Instance -> T.IPolicy -> T.OpResult () |
... | ... | |
280 | 280 |
instAboveISpec inst (T.iPolicyMinSpec ipol) |
281 | 281 |
instBelowISpec inst (T.iPolicyMaxSpec ipol) |
282 | 282 |
if diskTemplate inst `elem` T.iPolicyDiskTemplates ipol |
283 |
then T.OpGood ()
|
|
284 |
else T.OpFail T.FailDisk
|
|
283 |
then Ok ()
|
|
284 |
else Bad T.FailDisk
|
|
285 | 285 |
|
286 | 286 |
-- | Checks whether the instance uses a secondary node. |
287 | 287 |
-- |
Also available in: Unified diff