
    x[h
              
           % S r SSKrSSKJrJrJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJr  SSKJr  SS	KJr  \rS
\/\/ S.r\\S'   \R*                  " \5      rSrS\S\	S\S\SS4
S jrg)z@Final Message: Output final message when cloud-init has finished    N)	templaterutilversion)Cloud)Config)
MetaSchema)ALL_DISTROS)log_util)
PER_ALWAYScc_final_message)iddistros	frequencyactivate_by_schema_keysmetazy## template: jinja
Cloud-init v. {{version}} finished at {{timestamp}}. Datasource {{datasource}}.  Up {{uptime}} secondsnamecfgcloudargsreturnc           
         SnU(       a  [        US   5      nO[        R                  " USS5      nUR                  5       nU(       d  [        n[        R
                  " 5       n[        R                  " 5       n[        R                  " 5       n UUU[        UR                  5      S.nUR                  [        UR                  5        V	V
s/ s H  u  pU	R                  5       U
4PM     sn
n	5      5        [        R                  " S[         R"                  " XH5      -  SS[$        S9  UR,                  R.                  n U< SU< SU< S3n[        R0                  " XSS9  UR                  R2                  S:X  aA  UR                  R4                  R7                  S5      S/:w  a  [$        R9                  S5        g g g s  sn
n	f ! [         R&                   a/  n[        R(                  " [$        S	[        U5      5         S nANS nAf[*         a    [        R(                  " [$        S
5         GNf = f! [*         a    [        R(                  " [$        SU5         Nf = f)N r   final_message)uptime	timestampr   
datasourcez%s
FT)consolestderrlogz,Failed to render templated final message: %sz'Failed to render final message templatez - z - v. 
)ensure_dir_existsz%Failed to write boot finished file %sNonedatasource_listzUsed fallback datasource)strr   get_cfg_option_strstripFINAL_MESSAGE_DEFr   time_rfc2822r   version_stringr   updatedictitemsupperr
   	multi_logr   render_stringLOGJinjaSyntaxParsingExceptionlogexc	Exceptionpathsboot_finished
write_filedsnamesys_cfggetwarning)r   r   r   r   msg_inr   tscversubskveboot_fin_fncontentss                 C/usr/lib/python3/dist-packages/cloudinit/config/cc_final_message.pyhandlerE   &   s   FT!W((orB\\^F"[[]F				B!!#DDe../	
 	DTZZ\B\TQ1779a.\BCDi--f;<		
 ++++KO*0"d;G &(##''(9:vhFKK23 G )+ C 00 
?Q	
 	
  DCBCD  OC@+NOsB   =G F=)>G >#H0 =G H-%H(H-,H-0&II)__doc__logging	cloudinitr   r   r   cloudinit.cloudr   cloudinit.configr   cloudinit.config.schemar   cloudinit.distrosr	   cloudinit.logr
   cloudinit.settingsr   r   r   __annotations__	getLogger__name__r0   r'   r$   listrE        rD   <module>rU      s    G  . . ! # . ) " )	
}!	j  !9 -4 -46 -4% -4t -4 -4rT   