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
alphanum_split |
Split the key into a list of [text, int, text, int, ...]. |
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. |
file_checksum |
Get the checksum of the given file. |
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. |
truth_value |
Parser helper function for truth values like ‘0’, ‘y’, or ‘false’. |
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_value, expected_value)[source]¶ Bases:
COT.data_validation.ValueUnsupportedError
A numerical input was higher than the highest supported value.
Parameters:
-
exception
ValueTooLowError
(value_type, actual_value, expected_value)[source]¶ Bases:
COT.data_validation.ValueUnsupportedError
A numerical input was less than the lowest supported value.
Parameters:
-
exception
ValueUnsupportedError
(value_type, actual_value, expected_value)[source]¶ Bases:
COT.data_validation.InvalidInputError
An unsupported value was provided.
Parameters:
-
alphanum_split
(key)[source]¶ Split the key into a list of [text, int, text, int, ...].
Parameters: key (str) – String to split. Returns: list – List of tokens
-
canonicalize_helper
(label, user_input, mappings, re_flags=0)[source]¶ Try to find a mapping of input to output.
Parameters: Returns: str – The canonical string
Raises: ValueUnsupportedError
– If noexpr
inmappings
matches the givenuser_input
.
-
canonicalize_ide_subtype
(subtype)[source]¶ Try to convert the given IDE controller string to a canonical form.
Parameters: subtype (str) – User-provided string Returns: str – 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: str – The canonical string, one of NIC_TYPES
Raises: ValueUnsupportedError
– If the canonical string cannot be determinedSee also
COT.platforms.GenericPlatform.validate_nic_type()
-
canonicalize_scsi_subtype
(subtype)[source]¶ Try to convert the given SCSI controller string to a canonical form.
Parameters: subtype (str) – User-provided string Returns: str – 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: Raises: ValueMismatchError
– if references differReturns: object – 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 addressReturns: str – Validated string (with leading/trailing whitespace stripped)
-
file_checksum
(path_or_obj, checksum_type)[source]¶ Get the checksum of the given file.
Parameters: Returns: str – Hexadecimal file checksum
-
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 (str) – String to validate Raises: InvalidInputError
– if string is not a valid MAC addressReturns: str – 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: Raises: ValueMismatchError
– iffirst != second
-
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: list – 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 whitespaceReturns: str – 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()
settingminimum
to 0.Parameters: string (str) – String to validate.
Returns: int – Validated integer value
Raises: ValueUnsupportedError
– ifstring
can’t be converted to intValueTooLowError
– if value is less than 0
-
positive_int
(string)[source]¶ Parser helper function for integer arguments that must be 1 or more.
Alias for
validate_int()
settingminimum
to 1.Parameters: string (str) – String to validate.
Returns: int – Validated integer value
Raises: ValueUnsupportedError
– ifstring
can’t be converted to intValueTooLowError
– if value is less than 1
-
to_string
(obj)[source]¶ Get string representation of an object, special-case for XML Element.
Parameters: obj (object) – Object to represent as a string. Returns: str – string representation
-
truth_value
(value)[source]¶ Parser helper function for truth values like ‘0’, ‘y’, or ‘false’.
Wrapper for
distutils.util.strtobool()
Parameters: value (str) – String to parse/validate Returns: bool – True or False Raises: ValueUnsupportedError
– if the value can’t be parsed to a boolean.
-
validate_int
(string, minimum=None, maximum=None, label='input')[source]¶ Parser helper function for validating integer arguments in a range.
Parameters: Returns: int – Validated integer value
Raises: ValueUnsupportedError
– ifstring
can’t be converted to intValueTooLowError
– if value is less thanminimum
ValueTooHighError
– if value is more thanmaximum
-
NIC_TYPES
= ['E1000e', 'E1000', 'PCNet32', 'virtio', 'VMXNET3']¶ List of NIC type strings recognized as canonical.