
    Vh                        d dl mZ d dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ  e       ZdgZ G d d      Zy)    )annotationsN)	constants)AnsibleParserError)to_text	to_native)Play)PlaybookInclude)add_all_plugin_dirs)Display)unfrackpathPlaybookc                  8    e Zd Zd Zedd       ZddZd Zd Zy)	r   c                v    g | _         t        t        j                         d      | _        || _        d | _        y )Nsurrogate_or_strict)errors)_entriesr   osgetcwd_basedir_loader
_file_name)selfloaders     I/home/dcms/DCMS/lib/python3.12/site-packages/ansible/playbook/__init__.py__init__zPlaybook.__init__'   s.     		4IJ    Nc                D    t        |      }|j                  | |       |S )N)r   )	file_namevariable_manager)r   _load_playbook_data)r   r   r   pbs       r   loadzPlaybook.load/   s%    V$
EUV	r   c           	     
   t         j                  j                  |      r%t         j                  j                  |      | _        nit         j                  j                  t         j                  j                  | j                  t         j                  j                  |                  | _        | j                  j                         }| j                  j                  | j                         t        | j                         || _        	 | j                  j                  t         j                  j                  |            }|4| j                  j                  |       t        dt#        |      z  |      t%        |t&              s@| j                  j                  |       t        dt)        |      dt#        |      |      |s2| j                  j                  |       t        dt#        |      z        |D ];  t%        t*              s(| j                  j                  |       t        d      t-        fd	t.        j0                  D              rt3        j4                  | j                  || j                  
      }|&| j6                  j9                  |j6                         }t.        j0                  D ]  }	|	v s|	   } n t:        j;                  d|z  t.        j<                         t?        j4                  || j                  |      }
| j6                  jA                  |
       > | j                  j                  |       y # t        $ r}t        d|dt!        |            d }~ww xY w)NzCould not read playbook (z) due to encoding issues: z!Empty playbook, nothing to do: %s)objz*A playbook must be a list of plays, got a z
 instead: z-A playbook must contain at least one play: %szKplaybook entries must be either valid plays or 'import_playbook' statementsc              3  &   K   | ]  }|v  
 y wN ).0actionentrys     r   	<genexpr>z/Playbook._load_playbook_data.<locals>.<genexpr>]   s     Kv6U?Ks   )basedirr   r   z6skipping playbook '%s' due to conditional test failure)color)r   r   vars)!r   pathisabsdirnamer   normpathjoinr   get_basedirset_basedirr
   r   load_from_filebasenameUnicodeDecodeErrorr   r   r   
isinstancelisttypedictanyC_ACTION_IMPORT_PLAYBOOKr	   r"   r   extenddisplay
COLOR_SKIPr   append)r   r   r   r.   cur_basedirdser!   whichk	entry_objr*   s              @r   r    zPlaybook._load_playbook_data5   s   77==#GGOOI6DMGG,,RWW\\$--YbIc-deDM ll..0  /DMM*#	|,,RWW-=-=i-HIB
 :LL$$[1$%H;W`Ka%agijjB%LL$$[1$cghjckmx  zC  nD  &E  KM  N  NLL$$[1$%TWbclWm%mnn
  	0EeT*((5()v  }B  C  CK1J1JKK$))%Yirvr~r~>MM((5!E66 ":$)!HE!" OO$\_d$dlmlxlxOy IIe>NW[WcWcjno	$$Y/'	0, 	  -O " 	|$bkmvwxmy%z{{	|s   8M 	N#M==Nc                    | j                   S r&   )r   r   s    r   
get_loaderzPlaybook.get_loadero   s    ||r   c                     | j                   d d  S r&   )r   rK   s    r   	get_playszPlaybook.get_playsr   s    }}Qr   )NNr&   )	__name__
__module____qualname__r   staticmethodr"   r    rL   rN   r'   r   r   r   r   %   s+      
8.t r   )
__future__r   r   ansibler   r>   ansible.errorsr   +ansible.module_utils.common.text.convertersr   r   ansible.playbook.playr   !ansible.playbook.playbook_includer	   ansible.plugins.loaderr
   ansible.utils.displayr   ansible.utils.pathr   rA   __all__r   r'   r   r   <module>r]      sA   $ # 	 " - J & = 6 ) *
) ,N  N r   