COT.data_validation
module¶
Various helpers for data sanity checks.
Exceptions
InvalidInputError |
Miscellaneous error during validation of user input. |
ValueMismatchError |
Values which were expected to be equal turned out to be not equal. |
ValueUnsupportedError |
An unsupported value was provided. |
ValueTooLowError |
A numerical input was less than the lowest supported value. |
ValueTooHighError |
A numerical input was higher than the highest supported value. |
Functions
canonicalize_helper |
Try to find a mapping of input to output. |
canonicalize_ide_subtype |
Try to convert the given IDE controller string to a canonical form. |
canonicalize_nic_subtype |
Try to convert the given NIC subtype string to a canonical form. |
canonicalize_scsi_subtype |
Try to convert the given SCSI controller string to a canonical form. |
check_for_conflict |
Make sure the list does not contain references to more than one object. |
device_address |
Parser helper function for device address arguments. |
mac_address |
Parser helper function for MAC address arguments. |
match_or_die |
Make sure “first” and “second” are equal or raise an error. |
natural_sort |
Sort the given list “naturally” rather than in ASCII order. |
no_whitespace |
Parser helper function for arguments not allowed to contain whitespace. |
non_negative_int |
Parser helper function for integer arguments that must be 0 or more. |
positive_int |
Parser helper function for integer arguments that must be 1 or more. |
to_string |
Get string representation of an object, special-case for XML Element. |
validate_int |
Parser helper function for validating integer arguments in a range. |
Constants
NIC_TYPES |
List of NIC type strings recognized as canonical. |
-
exception
InvalidInputError
[source]¶ Bases:
exceptions.ValueError
Miscellaneous error during validation of user input.
-
exception
ValueMismatchError
[source]¶ Bases:
exceptions.ValueError
Values which were expected to be equal turned out to be not equal.
-
exception
ValueTooHighError
(value_type, actual, expected)[source]¶ Bases:
COT.data_validation.ValueUnsupportedError
A numerical input was higher than the highest supported value.
Variables: - value_type – descriptive string
- actual_value – invalid value that was provided
- expected_value – maximum supported value
-
exception
ValueTooLowError
(value_type, actual, expected)[source]¶ Bases:
COT.data_validation.ValueUnsupportedError
A numerical input was less than the lowest supported value.
Variables: - value_type – descriptive string
- actual_value – invalid value that was provided
- expected_value – minimum supported value
-
exception
ValueUnsupportedError
(value_type, actual, expected)[source]¶ Bases:
COT.data_validation.InvalidInputError
An unsupported value was provided.
Variables: - value_type – descriptive string
- actual_value – invalid value that was provided
- expected_value – expected (valid) value or values (item or list)
-
canonicalize_helper
(label, user_input, mappings, re_flags=0)[source]¶ Try to find a mapping of input to output.
Parameters: - label (str) – Label to use in any error raised
- user_input (str) – User-provided string
- mappings (list) – List of
(expr, canonical)
pairs for mapping. - re_flags –
re.IGNORECASE
, etc. if desired
Returns: The canonical string
Raises: ValueUnsupportedError – If no
expr
inmappings
matchesinput
.
-
canonicalize_ide_subtype
(subtype)[source]¶ Try to convert the given IDE controller string to a canonical form.
Parameters: subtype (str) – User-provided string Returns: The canonical string, one of: PIIX4
virtio
Raises: ValueUnsupportedError – If the canonical string cannot be determined
-
canonicalize_nic_subtype
(subtype)[source]¶ Try to convert the given NIC subtype string to a canonical form.
Parameters: subtype (str) – User-provided string Returns: The canonical string, one of NIC_TYPES
Raises: ValueUnsupportedError – If the canonical string cannot be determined
-
canonicalize_scsi_subtype
(subtype)[source]¶ Try to convert the given SCSI controller string to a canonical form.
Parameters: subtype (str) – User-provided string Returns: The canonical string, one of: buslogic
lsilogic
lsilogicsas
virtio
VirtualSCSI
Raises: ValueUnsupportedError – If the canonical string cannot be determined
-
check_for_conflict
(label, li)[source]¶ Make sure the list does not contain references to more than one object.
Parameters: - label (str) – Descriptive label to be used if an error is raised
- li (list) – List of object references (which may include
None
)
Raises: ValueMismatchError – if references differ
Returns: the object or
None
-
device_address
(string)[source]¶ Parser helper function for device address arguments.
Validate string is an appropriately formed device address such as ‘1:0’.
Parameters: string (str) – String to validate Raises: InvalidInputError – if string is not a well-formatted device address Returns: Validated string (with leading/trailing whitespace stripped)
-
mac_address
(string)[source]¶ Parser helper function for MAC address arguments.
Validate whether a string is a valid MAC address. Recognized formats are:
- xx:xx:xx:xx:xx:xx
- xx-xx-xx-xx-xx-xx
- xxxx.xxxx.xxxx
Parameters: string – String to validate Raises: InvalidInputError – if string is not a valid MAC address Returns: Validated string(with leading/trailing whitespace stripped)
-
match_or_die
(first_label, first, second_label, second)[source]¶ Make sure “first” and “second” are equal or raise an error.
Parameters: - first_label (str) – Descriptive label for
first
- first – First object to compare
- second_label (str) – Descriptive label for
second
- second – Second object to compare
Raises: ValueMismatchError – if
first != second
- first_label (str) – Descriptive label for
-
natural_sort
(l)[source]¶ Sort the given list “naturally” rather than in ASCII order.
E.g, “10” comes after “9” rather than between “1” and “2”.
See also http://nedbatchelder.com/blog/200712/human_sorting.html
Parameters: l (list) – List to sort Returns: Sorted list
-
no_whitespace
(string)[source]¶ Parser helper function for arguments not allowed to contain whitespace.
Parameters: string (str) – String to validate Raises: InvalidInputError – if string contains internal whitespace Returns: Validated string (with leading/trailing whitespace stripped)
-
non_negative_int
(string)[source]¶ Parser helper function for integer arguments that must be 0 or more.
Alias for
validate_int()
settingmin
to 0.
-
positive_int
(string)[source]¶ Parser helper function for integer arguments that must be 1 or more.
Alias for
validate_int()
settingmin
to 1.
-
validate_int
(string, min=None, max=None, label='input')[source]¶ Parser helper function for validating integer arguments in a range.
Parameters: - string (str) – String to convert to an integer and validate
- min (int) – Minimum valid value (optional)
- max (int) – Maximum valid value (optional)
- label (str) – Label to include in any errors raised
Returns: Validated integer value
Raises: - ValueUnsupportedError – if
string
can’t be converted to int - ValueTooLowError – if value is less than
min
- ValueTooHighError – if value is more than
max
-
NIC_TYPES
= ['E1000e', 'E1000', 'PCNet32', 'virtio', 'VMXNET3']¶ List of NIC type strings recognized as canonical.