관리-도구
편집 파일: 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