관리-도구
편집 파일: role_include.cpython-39.pyc
a �)g� � @ s� d dl mZmZmZ eZd dlmZ d dlm Z d dlmZ d dl mZ d dlmZ d dlmZ d dlmZ d d lmZ d d lmZ d dlmZ d dlmZ d gZe� ZG dd � d e�ZdS )� )�absolute_import�division�print_function)�basenameN)�AnsibleParserError)�NonInheritableFieldAttribute)�Block)�TaskInclude)�Role)�RoleInclude)�Display)�string_types)�Templar�IncludeRolec s� e Zd ZdZed�Zed�Zed�ZeeB eB Ze ddddd�Z e ddddd�Ze ddddd�Zd� fd d� Z dd � Zddd�Zeddd��Zd� fdd� Z� fdd�Z� ZS )r z� A Role include is derived from a regular role to handle the special circumstances related to the `- include_role: ...` )�name�role)Z tasks_fromZ vars_fromZ defaults_fromZ handlers_from)�apply�public�allow_duplicates�rolespec_validate�boolT)Zisa�defaultZprivateZalways_post_validateFNc s2 t t| �j|||d� i | _|| _d | _d | _d S )N)�blockr �task_include)�superr �__init__�_from_files�_parent_role� _role_name� _role_path)�selfr r r �� __class__� �A/usr/lib/python3.9/site-packages/ansible/playbook/role_include.pyr ; s zIncludeRole.__init__c C s | j pd| j| jf S )z return the name of the task z%s : %s)r �actionr )r r# r# r$ �get_nameD s zIncludeRole.get_namec C sB |d u r| j j}n|}tj| j|||| jd�}| j| jO _|d urV|j|| d�}ni }t||d�}|� | j �}tj||| j|d| j d�} | j| j_| js�| jr�|j�| � | j| _| js�g } nt| jj�} | �| j� | �� }| j|_| j|| d�}|D ]} || _ | j| _q�| j|d�}|D ]}||_ �q |j| |_||fS )N)�play�variable_manager�loaderZcollection_list)r'