From 791510ccba5f3a9af3d22f442e9d4d10b1129a00 Mon Sep 17 00:00:00 2001 From: Tim Way <1091435+timway@users.noreply.github.com> Date: Thu, 20 Apr 2023 14:01:22 -0500 Subject: [PATCH] Vars Plugin Documentation Improvement (#80470) --- docs/docsite/rst/dev_guide/developing_plugins.rst | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/docsite/rst/dev_guide/developing_plugins.rst b/docs/docsite/rst/dev_guide/developing_plugins.rst index 25662f018bd..e1143cf4925 100644 --- a/docs/docsite/rst/dev_guide/developing_plugins.rst +++ b/docs/docsite/rst/dev_guide/developing_plugins.rst @@ -544,6 +544,19 @@ Include the ``vars_plugin_staging`` documentation fragment to allow users to det - vars_plugin_staging ''' +At times a value provided by a vars plugin will contain unsafe values. The utility function `wrap_var` provided by `ansible.utils.unsafe_proxy` should be used to ensure that Ansible handles the variable and value correctly. The use cases for unsafe data is covered in :ref:`unsafe_strings`. + +.. code-block:: python + + from ansible.plugins.vars import BaseVarsPlugin + from ansible.utils.unsafe_proxy import wrap_var + + class VarsPlugin(BaseVarsPlugin): + def get_vars(self, loader, path, entities): + return dict( + something_unsafe=wrap_var("{{ SOMETHING_UNSAFE }}") + ) + For example vars plugins, see the source code for the `vars plugins included with Ansible Core `_.