Revision e3ed5316 lib/hypervisor/hv_base.py
b/lib/hypervisor/hv_base.py | ||
---|---|---|
47 | 47 |
from ganeti import constants |
48 | 48 |
|
49 | 49 |
|
50 |
def _IsCpuMaskWellFormed(cpu_mask): |
|
51 |
try: |
|
52 |
cpu_list = utils.ParseCpuMask(cpu_mask) |
|
53 |
except errors.ParseError, _: |
|
54 |
return False |
|
55 |
return isinstance(cpu_list, list) and len(cpu_list) > 0 |
|
56 |
|
|
57 |
|
|
50 | 58 |
# Read the BaseHypervisor.PARAMETERS docstring for the syntax of the |
51 | 59 |
# _CHECK values |
52 | 60 |
|
... | ... | |
58 | 66 |
_DIR_CHECK = (utils.IsNormAbsPath, "must be an absolute normalized path", |
59 | 67 |
os.path.isdir, "not found or not a directory") |
60 | 68 |
|
69 |
# CPU mask must be well-formed |
|
70 |
# TODO: implement node level check for the CPU mask |
|
71 |
_CPU_MASK_CHECK = (_IsCpuMaskWellFormed, |
|
72 |
"CPU mask definition is not well-formed", |
|
73 |
None, None) |
|
74 |
|
|
61 | 75 |
# nice wrappers for users |
62 | 76 |
REQ_FILE_CHECK = (True, ) + _FILE_CHECK |
63 | 77 |
OPT_FILE_CHECK = (False, ) + _FILE_CHECK |
... | ... | |
65 | 79 |
OPT_DIR_CHECK = (False, ) + _DIR_CHECK |
66 | 80 |
NET_PORT_CHECK = (True, lambda x: x > 0 and x < 65535, "invalid port number", |
67 | 81 |
None, None) |
82 |
OPT_CPU_MASK_CHECK = (False, ) + _CPU_MASK_CHECK |
|
83 |
REQ_CPU_MASK_CHECK = (True, ) + _CPU_MASK_CHECK |
|
68 | 84 |
|
69 | 85 |
# no checks at all |
70 | 86 |
NO_CHECK = (False, None, None, None, None) |
Also available in: Unified diff