
    x[h                        S r SSKrSSKrSSKrSSKrSSKJr  SSKJrJ	r	J
r
Jr  Sr\" 5       R                  r\R                  " \5      rS
S jrSS jrS r\S	:X  a-  \R*                  " \" \\" 5       R-                  5       5      5        gg)z,Debug jinja template rendering of user-data.    N)read_cfg_paths)JinjaLoadErrorJinjaSyntaxParsingExceptionNotJinjaErrorrender_jinja_payload_from_filerenderc                     U (       d  [         R                  " [        [        S9n U R	                  S[
        SS9  U R	                  SS[
        S[         3S9  U R	                  SS	S
SSS9  U $ )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                    U(       a  UnO[        5       n[        R                  " 5       nUR                  S5      nUS:X  aO  UR                  S5      n[        R                  R                  U5      (       d  [        R                  SUU5        UnOUn[        R                  R                  U5      (       d  [        R                  SU5        g [        U 5       nUR                  5       nSSS5         [        WU UU(       a  S	OS
S9n	U	(       d  [        R                  SU 5        g[$        R&                  R)                  U	5        g! , (       d  f       Nb= f! [         a    [        R                  SU 5         gf = f! [        [        4 a)  n
[        R                  S[        U
5      5         Sn
A
gSn
A
f[          a*  n
[        R                  SU [#        U
5      5         Sn
A
gSn
A
ff = f)zRender 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    - iik ,,_=!8$001JK77>>"233J$$
 $4 /77>>*++		79IJ.!VI "
9%/$U	
$ 		7HJJ%&9 "! 		.? M* 		CT!W	
 & 		@F	

 sT   E E*E 3E= 
EE E  E:9E:=G(F11G(> G##G(c                 X    [        UR                  UR                  UR                  5      $ N)r=   r   r   r$   )_nameargss     r   handle_argsrB   v   s    4>>4+=+=tzz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   	 
 .  "$,, !@9xK zHH[z|6689: r   