Skip to content

Latest commit

 

History

History
171 lines (136 loc) · 6.85 KB

ansible.utils.validate_test.rst

File metadata and controls

171 lines (136 loc) · 6.85 KB

ansible.utils.validate

Validate data with provided criteria

Version added: 1.0.0

  • Validate data with provided criteria based on the validation engine.
Parameter Choices/Defaults Configuration Comments
criteria
raw / required
The criteria used for validation of value that represents data options.
This option is passed to the test plugin as key, value pair For example config_data is ansible.utils.validate(criteria=criteria), in this case the value of criteria key represents this criteria for data validation.
For the type of criteria that represents this value refer documentation of individual validate plugins.
data
raw / required
A data that will be validated against criteria.
This option represents the value that is passed to test plugin as check. For example config_data is ansible.utils.validate(criteria=criteria, in this case config_data represents this option.
For the type of data that represents this value refer documentation of individual validate plugins.
engine
string
Default:
"ansible.utils.jsonschema"
The name of the validate plugin to use.
This option can be passed in test plugin as a key, value pair For example config_data is ansible.utils.validate(engine='ansible.utils.jsonschema', criteria=criteria), in this case the value of engine key represents the engine to be use for data validation. If the value is not provided the default value that is ansible.utils.jsonschema will be used.
The value should be in fully qualified collection name format that is <org-name>.<collection-name>.<validate-plugin-name>.

Note

  • For the type of options data and criteria refer the individual validate plugin documentation that is represented in the value of engine option.
  • For additional plugin configuration options refer the individual validate plugin documentation that is represented by the value of engine option.
  • The plugin configuration option can be either passed as key=value pairs within test plugin or set as environment variables.
  • The precedence the validate plugin configurable option is the variable passed within test plugin as key=value pairs followed by task variables followed by environment variables.
- name: set facts for data and criteria
  ansible.builtin.set_fact:
    data: "{{ lookup('ansible.builtin.file', './validate/data/show_interfaces_iosxr.json')}}"
    criteria: "{{ lookup('ansible.builtin.file', './validate/criteria/jsonschema/show_interfaces_iosxr.json')}}"

- name: validate data in json format using jsonschema with test plugin
  ansible.builtin.set_fact:
    is_data_valid: "{{ data is ansible.utils.validate(engine='ansible.utils.jsonschema', criteria=criteria, draft='draft7') }}"

Common return values are documented here, the following are the fields unique to this test:

Key Returned Description
_raw
-
If data is valid return true
If data is invalid return false



Authors

  • Ganesh Nalawade (@ganeshrn)

Hint

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.