Ë
    x[hº  ã                   ó  — d Z ddlZddlZddlZddlZddlmZ ddlmZm	Z	m
Z
mZ dZ e«       j                  Z ej                  e«      Zd
d„Zdd„Zd„ Zed	k(  r- ej*                   ee e«       j-                  «       «      «       yy)z,Debug jinja template rendering of user-data.é    N)Úread_cfg_paths)ÚJinjaLoadErrorÚJinjaSyntaxParsingExceptionÚNotJinjaErrorÚrender_jinja_payload_from_fileÚrenderc                 óä   — | st        j                  t        t        ¬«      } | j	                  dt
        d¬«       | j	                  ddt
        dt        › �¬«       | j	                  dd	d
dd¬«       | S )a  Build or extend and arg parser for jinja render utility.

    @param parser: Optional existing ArgumentParser instance representing the
        subcommand which will be extended to support the args of this utility.

    @returns: ArgumentParser with proper argument configuration.
    )ÚprogÚdescriptionÚ	user_dataz$Path to the user-data file to render)ÚtypeÚhelpz-iz--instance-dataz6Optional path to instance-data.json file. Defaults to z-dz--debugÚ
store_trueFz+Add verbose messages during template render)ÚactionÚdefaultr   )ÚargparseÚArgumentParserÚNAMEÚ__doc__Úadd_argumentÚstrÚCLOUDINIT_RUN_DIR)Úparsers    ú</usr/lib/python3/dist-packages/cloudinit/cmd/devel/render.pyÚ
get_parserr      s�   € ñ Ü×(Ñ(¬dÄÔHˆØ
×ÑØœ#Ð$Jð ô ð ×ÑØØÜðÜ,Ð-ð/ð ô ð ×ÑØØØØØ:ð ô ð €Mó    c                 ó–  — |r|}n€t        «       }t        j                  «       }|j                  d«      }|dk(  rJ|j                  d«      }t        j                  j                  |«      st        j                  d||«       |}n|}t        j                  j                  |«      st        j                  d|«       y	 t        | «      5 }|j                  «       }ddd«       	 t        | ||rd	nd
¬«      }	|	st        j                  d| «       yt$        j&                  j)                  |	«       y# 1 sw Y   ŒVxY w# t        $ r t        j                  d| «       Y yw xY w# t        t        f$ r)}
t        j                  dt        |
«      «       Y d}
~
yd}
~
wt         $ r*}
t        j                  d| t#        |
«      «       Y d}
~
yd}
~
ww xY w)zýRender the provided user-data template file using instance-data values.

    Also setup CLI log handlers to report to stderr since this is a development
    utility which should be run by a human on the CLI.

    @return 0 on success, 1 on failure.
    Úinstance_datar   Úinstance_data_sensitivez4Missing root-readable %s. Using redacted %s instead.z#Missing instance-data.json file: %sé   NzMissing user-data file: %sTF)ÚpayloadÚ
payload_fnÚinstance_data_fileÚdebugz5Cannot render from instance data due to exception: %sz2Failed to render templated user-data file '%s'. %sz#Unable to render user-data file: %s)r   ÚosÚgetuidÚget_runpathÚpathÚexistsÚLOGÚwarningÚerrorÚopenÚreadÚIOErrorr   r   r   Úreprr   r   ÚsysÚstdoutÚwrite)Úuser_data_pathÚinstance_data_pathr$   Úinstance_data_fnÚpathsÚuidÚredacted_data_fnÚstreamr   Úrendered_payloadÚes              r   Úrender_templater=   :   s•  € ñ Ø-ÑäÓ ˆÜ�i‰i‹kˆØ ×,Ñ,¨_Ó=ÐØ�!Š8Ø$×0Ñ0Ð1JÓKÐÜ—7‘7—>‘>Ð"2Ô3Ü—‘ØJØ$Ø$ôð
 $4Ñ à/ÐÜ�7‰7�>‰>Ð*Ô+Ü�	‰	Ð7Ð9IÔJØðÜ�.Ó!ð 	& VØŸ™›ˆI÷	&ð
Ü9ØØ%Ø/Ù‘$ Uô	
Ðñ$ Ü�	‰	Ð7¸ÔHØÜ‡J�J×ÑÐ%Ô&Ø÷9	&ð 	&ûäò Ü�	‰	Ð.°Ô?Ùðûô œMÐ*ò Ü�	‰	ØCÄTÈ!ÃWô	
ô ûÜ&ò Ü�	‰	Ø@ØÜ�‹Fô	
ô
 ûðúsN   Â=D: ÃD.ÃD: Ã"E Ä.D7Ä3D: Ä:EÅEÅGÅ.FÆGÆ GÇGc                 óX   — t        |j                  |j                  |j                  «      S ©N)r=   r   r   r$   )Ú_nameÚargss     r   Úhandle_argsrB   v   s   € Ü˜4Ÿ>™>¨4×+=Ñ+=¸t¿z¹zÓJÐJr   Ú__main__r?   )NF)r   r   Úloggingr%   r1   Úcloudinit.cmd.develr   Ú!cloudinit.handlers.jinja_templater   r   r   r   r   Úrun_dirr   Ú	getLoggerÚ__name__r*   r   r=   rB   ÚexitÚ
parse_args© r   r   ú<module>rM      sŒ   ðñ
 3ã Û Û 	Û 
å .÷ó ð €Ù"Ó$×,Ñ,Ð à€g×Ñ˜Ó!€óó@9òxKð ˆzÒØ€C‡H�H‰[˜™z›|×6Ñ6Ó8Ó9Õ:ð r   