File: //lib/python3.9/site-packages/ansible/plugins/lookup/__pycache__/template.cpython-39.pyc
a
�)gN � @ s� d dl mZmZmZ eZdZdZdZd dl m
Z
d dlZd dlm
Z d dlmZ d dlmZ d d lmZmZ d d
lmZmZ d dlmZ d dlmZ e� ZG d
d� de�ZdS )� )�absolute_import�division�print_functiona�
name: template
author: Michael DeHaan
version_added: "0.9"
short_description: retrieve contents of file after templating with Jinja2
description:
- Returns a list of strings; for each template in the list of templates you pass in, returns a string containing the results of processing that template.
options:
_terms:
description: list of files to template
convert_data:
type: bool
description:
- Whether to convert YAML into data. If False, strings that are YAML will be left untouched.
- Mutually exclusive with the jinja2_native option.
default: true
variable_start_string:
description: The string marking the beginning of a print statement.
default: '{{'
version_added: '2.8'
type: str
variable_end_string:
description: The string marking the end of a print statement.
default: '}}'
version_added: '2.8'
type: str
jinja2_native:
description:
- Controls whether to use Jinja2 native types.
- It is off by default even if global jinja2_native is True.
- Has no effect if global jinja2_native is False.
- This offers more flexibility than the template module which does not use Jinja2 native types at all.
- Mutually exclusive with the convert_data option.
default: False
version_added: '2.11'
type: bool
template_vars:
description: A dictionary, the keys become additional variables available for templating.
default: {}
version_added: '2.3'
type: dict
comment_start_string:
description: The string marking the beginning of a comment statement.
version_added: '2.12'
type: str
comment_end_string:
description: The string marking the end of a comment statement.
version_added: '2.12'
type: str
aO
- name: show templating results
ansible.builtin.debug:
msg: "{{ lookup('ansible.builtin.template', './some_template.j2') }}"
- name: show templating results with different variable start and end string
ansible.builtin.debug:
msg: "{{ lookup('ansible.builtin.template', './some_template.j2', variable_start_string='[%', variable_end_string='%]') }}"
- name: show templating results with different comment start and end string
ansible.builtin.debug:
msg: "{{ lookup('ansible.builtin.template', './some_template.j2', comment_start_string='[#', comment_end_string='#]') }}"
zW
_raw:
description: file(s) content after templating
type: list
elements: raw
)�deepcopyN)�AnsibleError)�
LookupBase)�to_bytes�to_text)�generate_ansible_template_vars�AnsibleEnvironment)�Display)�NativeJinjaTextc @ s e Zd Zdd� ZdS )�LookupModulec K s� g }| j ||d� | �d�}| �d�}| �d�o4tj}| �d�}| �d�} | �d�}
| �d�}|rj| j}n| jjtd �}|D �]F}
t�d
|
� | � |d|
�}t�
d| � |�r�| j�|�\}}t
|d
d�}|�dg �}|�rg }|D ]"}|�tj�|d�� |�|� q�|}|�dtj�|�� t|�}|�t|
|�� |�|� |j|| |
|||d��" |j|d|dd�}W d � n1 �s�0 Y tj�r�|�r�|�s�t|�}|�|� q|td|
��q||S )N)Zvar_optionsZdirect�convert_dataZ
template_vars�
jinja2_native�variable_start_string�variable_end_string�comment_start_string�comment_end_string)Zenvironment_classzFile lookup term: %sZ templateszFile lookup using %s as fileZsurrogate_or_strict)�errorsZansible_search_pathr )r r r r Zavailable_variables�
searchpathTF)Zpreserve_trailing_newlinesr Zescape_backslashesz6the template file %s could not be found for the lookup)Zset_optionsZ
get_option�CZDEFAULT_JINJA2_NATIVEZ_templarZcopy_with_new_envr �display�debugZfind_file_in_search_pathZvvvvZ_loaderZ_get_file_contentsr �get�append�os�path�join�insert�dirnamer �updater
Zset_temporary_context�templater
r )�selfZtermsZ variables�kwargs�retZconvert_data_pZlookup_template_varsr r r r r ZtemplarZtermZ
lookupfileZb_template_dataZ show_dataZ
template_datar Z
newsearchpath�p�vars�res� r) �C/usr/lib/python3.9/site-packages/ansible/plugins/lookup/template.py�runb sX
��&zLookupModule.runN)�__name__�
__module__�__qualname__r+ r) r) r) r* r ` s r )Z
__future__r r r �typeZ
__metaclass__Z
DOCUMENTATIONZEXAMPLESZRETURN�copyr r Zansible.constantsZ constantsr Zansible.errorsr Zansible.plugins.lookupr Zansible.module_utils._textr r Zansible.templater
r Zansible.utils.displayr Zansible.utils.native_jinjar
r r r) r) r) r* �<module> s 3