Skip to content

validate

Collection Note

This module is part of the ansible.utils collection. To install the collection, use:

ansible-galaxy collection install ansible.utils
Added in version 1.0.0.

Synopsis

  • Validate I(data) with provided I(criteria) based on the validation I(engine).

Parameters

Parameter Defaults / Choices Comments
criteria
raw
required
The criteria used for validation of value that represents I(data) options.
This option represents the second argument passed in the lookup plugin For example C(lookup(config_data, config_criteria, engine='ansible.utils.jsonschema')), in this case the value of C(config_criteria) represents this option.
For the type of I(criteria) that represents this value refer to the documentation of individual validate plugins.
data
raw
required
Data that will be validated against I(criteria).
This option represents the value that is passed to the lookup plugin as the first argument. For example C(lookup(config_data, config_criteria, engine='ansible.utils.jsonschema')), in this case C(config_data) represents this option.
For the type of I(data) that represents this value refer to the documentation of individual validate plugins.
engine
str
Default: ansible.utils.jsonschema
The name of the validate plugin to use.
This option can be passed in lookup plugin as a key, value pair. For example C(lookup(config_data, config_criteria, engine='ansible.utils.jsonschema')), in this case the value C(ansible.utils.jsonschema) represents the engine to be use for data validation. If the value is not provided the default value that is C(ansible.utils.jsonschema) will be used.
The value should be in fully qualified collection name format that is C(..).

Notes

Note

  • For the type of options I(data) and I(criteria) refer to the individual validate plugin documentation that is represented in the value of I(engine) option.
  • For additional plugin configuration options refer to the individual validate plugin documentation that is represented by the value of I(engine) option.
  • The plugin configuration option can be either passed as C(key=value) pairs within lookup plugin or task or environment variables.
  • The precedence the validate plugin configurable option is the variable passed within lookup plugin as C(key=value) pairs followed by task variables followed by environment variables.

Examples

- 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 lookup plugin by passing plugin configuration variable as key/value pairs
  ansible.builtin.set_fact:
    data_criteria_checks: "{{ lookup('ansible.utils.validate', data, criteria, engine='ansible.utils.jsonschema', draft='draft7') }}"

- name: validate data in json format using jsonschema with lookup plugin by passing plugin configuration variable as task variable
  ansible.builtin.set_fact:
    data_criteria_checks: "{{ lookup('ansible.utils.validate', data, criteria, engine='ansible.utils.jsonschema', draft='draft7') }}"
  vars:
    ansible_validate_jsonschema_draft: draft3

Return Values

Key Data Type Description Returned
_raw If data is valid returns empty list. If data is invalid returns list of errors in data.

Authors

  • Ganesh Nalawade (@ganeshrn)