Revision 2c368f28

b/lib/hypervisor/hv_base.py
102 102
_NET_PORT_CHECK = (lambda x: 0 < x < 65535, "invalid port number",
103 103
                   None, None)
104 104

  
105
# Check that an integer is non negative
106
_NONNEGATIVE_INT_CHECK = (lambda x: x >= 0, "cannot be negative", None, None)
107

  
105 108
# nice wrappers for users
106 109
REQ_FILE_CHECK = (True, ) + _FILE_CHECK
107 110
OPT_FILE_CHECK = (False, ) + _FILE_CHECK
......
113 116
OPT_CPU_MASK_CHECK = (False, ) + _CPU_MASK_CHECK
114 117
REQ_MULTI_CPU_MASK_CHECK = (True, ) + _MULTI_CPU_MASK_CHECK
115 118
OPT_MULTI_CPU_MASK_CHECK = (False, ) + _MULTI_CPU_MASK_CHECK
119
REQ_NONNEGATIVE_INT_CHECK = (True, ) + _NONNEGATIVE_INT_CHECK
120
OPT_NONNEGATIVE_INT_CHECK = (False, ) + _NONNEGATIVE_INT_CHECK
116 121

  
117 122
# no checks at all
118 123
NO_CHECK = (False, None, None, None, None)
b/lib/hypervisor/hv_kvm.py
514 514
      hv_base.ParamInSet(False, constants.HT_KVM_VALID_MOUSE_TYPES),
515 515
    constants.HV_KEYMAP: hv_base.NO_CHECK,
516 516
    constants.HV_MIGRATION_PORT: hv_base.REQ_NET_PORT_CHECK,
517
    constants.HV_MIGRATION_BANDWIDTH: hv_base.NO_CHECK,
518
    constants.HV_MIGRATION_DOWNTIME: hv_base.NO_CHECK,
517
    constants.HV_MIGRATION_BANDWIDTH: hv_base.REQ_NONNEGATIVE_INT_CHECK,
518
    constants.HV_MIGRATION_DOWNTIME: hv_base.REQ_NONNEGATIVE_INT_CHECK,
519 519
    constants.HV_MIGRATION_MODE: hv_base.MIGRATION_MODE_CHECK,
520 520
    constants.HV_USE_LOCALTIME: hv_base.NO_CHECK,
521 521
    constants.HV_DISK_CACHE:
......
532 532
      hv_base.ParamInSet(True, constants.REBOOT_BEHAVIORS),
533 533
    constants.HV_CPU_MASK: hv_base.OPT_MULTI_CPU_MASK_CHECK,
534 534
    constants.HV_CPU_TYPE: hv_base.NO_CHECK,
535
    constants.HV_CPU_CORES: hv_base.NO_CHECK,
536
    constants.HV_CPU_THREADS: hv_base.NO_CHECK,
537
    constants.HV_CPU_SOCKETS: hv_base.NO_CHECK,
535
    constants.HV_CPU_CORES: hv_base.OPT_NONNEGATIVE_INT_CHECK,
536
    constants.HV_CPU_THREADS: hv_base.OPT_NONNEGATIVE_INT_CHECK,
537
    constants.HV_CPU_SOCKETS: hv_base.OPT_NONNEGATIVE_INT_CHECK,
538 538
    }
539 539

  
540 540
  _MIGRATION_STATUS_RE = re.compile("Migration\s+status:\s+(\w+)",
b/lib/hypervisor/hv_xen.py
632 632
    constants.HV_REBOOT_BEHAVIOR:
633 633
      hv_base.ParamInSet(True, constants.REBOOT_BEHAVIORS),
634 634
    constants.HV_CPU_MASK: hv_base.OPT_MULTI_CPU_MASK_CHECK,
635
    constants.HV_CPU_CAP: hv_base.NO_CHECK,
635
    constants.HV_CPU_CAP: hv_base.OPT_NONNEGATIVE_INT_CHECK,
636 636
    constants.HV_CPU_WEIGHT:
637 637
      (False, lambda x: 0 < x < 65536, "invalid weight", None, None),
638 638
    }

Also available in: Unified diff