
    x[h
              
           U d Z ddlZddlmZ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 dd	lmZ eZd
egeg dZeed<    ej*                  e      ZdZdede	dededdf
dZy)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           
         d}|rt        |d         }nt        j                  |dd      }|j                         }|st        }t        j
                         }t        j                         }t        j                         }	 |||t        |j                        d}|j                  t        |j                         D 	
cg c]  \  }	}
|	j                         |
f c}
}	             t        j                  dt!        j"                  ||      z  ddt$               |j,                  j.                  }	 |d|d|d}t        j0                  ||d       |j                  j2                  dk(  r@|j                  j4                  j7                  d      dgk7  rt$        j9                  d       y y y c c}
}	w # t         j&                  $ r.}t        j(                  t$        d	t        |             Y d }~d }~wt*        $ r t        j(                  t$        d
       Y w xY w# t*        $ r t        j(                  t$        d|       Y w xY w)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\BTQ1779a.BCDi--fd;<		
 ++++KO*0"d;XG &(##''(9:vhFKK23 G )+ C 00 
?Q	
 	
  DCBCD  OC@+NOsC    =F3 =F-A F3 0#H -F3 3H$G//&HH$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  g!9 -4 -46 -4% -4t -4 -4rT   