+
    ˜qgj‹F  ã                   óü  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHtH	t	 ^ RI
Ht ^ RIHtHtHtHtHtHt ^ RIHtHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHtHtHt Rt ]PB                   ! R R]PD                  4      4       t#]PB                   ! R R]PD                  4      4       t$]PB                   ! R R]PD                  4      4       t%]&! ]%PN                  ]%PP                  ]%PR                  ]%PT                  .4      t+ ! R R]4      t,Rt-R R lt.R4R lt/R R lt0R R lt1R R lt2R R lt3R  R! lt4R" R# lt5R$ R% lt6R& R' lt7R( R) lt8R* R+ lt9R, t:R- t;R. R/ lt<R5R0 R1 llt=R2 t>]?R38X  d
   ]>! 4        R# R# )6zGDefine 'status' utility and handler as part of cloud-init command line.N)Údeepcopy)ÚdatetimeÚtimezone)Úsleep)ÚAnyÚDictÚListÚ
NamedTupleÚOptionalÚTuple)ÚsafeyamlÚsubp)Úread_cfg_paths)Úuses_systemd)ÚPaths)Úget_cmdlineÚ	load_jsonÚload_text_filez/etc/cloud/cloud-init.disabledc                   ó*   € ] tR t^tRtRtRtRtRtRt	R# )ÚRunningStatusz=Enum representing user-visible cloud-init application status.znot startedÚrunningÚdoneÚdisabled© N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚNOT_STARTEDÚRUNNINGÚDONEÚDISABLEDÚ__static_attributes__r   ó    Ú6/usr/lib/python3/dist-packages/cloudinit/cmd/status.pyr   r      s   † áGà€KØ€GØ€DØ„Hr$   r   c                   ó&   € ] tR t^&tRtRtRtRtRtR# )ÚConditionStatusz;Enum representing user-visible cloud-init condition status.ÚerrorÚdegradedÚhealthyr   N)	r   r   r   r   r   ÚERRORÚDEGRADEDÚPEACHYr#   r   r$   r%   r'   r'   &   s   † áEà€EØ€HØ„Fr$   r'   c                   ó:   € ] tR t^/tRtRtRtRtRtRt	Rt
RtR	tR
tR# )ÚEnabledStatusz<Enum representing user-visible cloud-init boot status codes.zdisabled-by-generatorzdisabled-by-kernel-command-linezdisabled-by-marker-filez disabled-by-environment-variablezenabled-by-generatorzenabled-by-kernel-command-linezenabled-by-sysvinitÚunknownr   N)r   r   r   r   r   ÚDISABLED_BY_GENERATORÚDISABLED_BY_KERNEL_CMDLINEÚDISABLED_BY_MARKER_FILEÚDISABLED_BY_ENV_VARIABLEÚENABLED_BY_GENERATORÚENABLED_BY_KERNEL_CMDLINEÚENABLED_BY_SYSVINITÚUNKNOWNr#   r   r$   r%   r/   r/   /   s4   † áFà3ÐØ!BÐØ7ÐØAÐØ1ÐØ @ÐØ/ÐØ„Gr$   r/   c                   ó,   a € ] tR t^Gt o V 3R ltRtV tR# )ÚStatusDetailsc                óâ   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   S[S[,          ;R&   S[S[S[S[,          3,          ;R&   S[;R&   S[S[,          ;R&   S[S[S[3,          ;R	&   # )
é   Úrunning_statusÚcondition_statusÚboot_status_codeÚdescriptionÚerrorsÚrecoverable_errorsÚlast_updateÚ
datasourceÚv1)r   r'   r/   Ústrr   r   r
   r   )ÚformatÚ__classdict__s   "€r%   Ú__annotate__ÚStatusDetails.__annotate__G   s“   ø‡ ‚ Ù!Ñ!ñ á%Ñ%ñ ñ $Ñ#ñ ñ Ññ	 ñ
 ‘�IÑñ ñ ™S¡$¡s¥)˜^Õ,Ñ,ñ ñ Ññ ñ ™•Ññ ñ 	‰S‘#ˆX�Ñò r$   r   N)r   r   r   r   Ú__annotate_func__r#   Ú__classdictcell__)rH   s   @r%   r:   r:   G   s   ø‡ ‡ „ r$   r:   z›extended_status: {extended_status}
boot_status_code: {boot_code}
{last_update}detail: {description}
errors:{errors}
recoverable_errors:{recoverable_errors}c                óR   € V ^8„  d   QhR\         \        ,          R\        R\        /# )r<   Úsystemctl_argsÚwaitÚreturn)r   rF   Úbool)rG   s   "r%   rI   rI   [   s,   € ÷ ñ Üœ•Iðô ðô 	ñ	r$   c               óÈ   €   \         P                   ! R.V O4      P                  P                  4       #   \         P                   d    T'       g   h \	        R4        K_  i ; i)z-Query systemd with retries and return output.Ú	systemctlç      Ð?)r   ÚstdoutÚstripÚProcessExecutionErrorr   )rN   rO   s   &$r%   Úquery_systemctlrX   [   sT   € ð ð	Ü—9’9˜kÐ;¨NÐ;Ó<×CÑC×IÑIÓKÐKøÜ×)Ñ)ô 	ßØÜ�$�Kð	ús   ƒ04 ´A!ÁA!Á A!c                óÖ   € V '       g   \         P                  ! RRR7      p V P                  R\        . RORRR7       V P                  RR	R
RRR7       V P                  RRR
RRR7       V # )a  Build or extend an arg parser for status utility.

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

@returns: ArgumentParser with proper argument configuration.
ÚstatuszReport run status of cloud init)Úprogr@   z--formatÚtabularz5Specify output format for cloud-id (default: tabular))ÚtypeÚchoicesÚdefaultÚhelpz-lz--longÚ
store_trueFzJReport long format of statuses including run stage name and error messages)Úactionr_   r`   z-wz--waitz'Block waiting on cloud-init to complete)Újsonr\   Úyaml)ÚargparseÚArgumentParserÚadd_argumentrF   ©Úparsers   &r%   Ú
get_parserrj   j   s’   € ÷ Ü×(Ò(ØÐ'Hô
ˆð ×ÑØÜÚ+ØØDð ô ð ×ÑØØØØðð ô 	ð ×ÑØØØØØ6ð ô ð €Mr$   c                ó^   € V ^8„  d   QhR\         R\        R\        \        \        3,          /# )r<   r   Ú	conditionrP   )r   r'   r   rF   )rG   s   "r%   rI   rI   ’   s,   € ÷ (ñ (Üð(Ü'6ð(ä
Œ3”ˆ8…_ñ(r$   c                óX  € V\         P                  8X  d   RVP                   RV P                   23# V\         P                  8X  dM   V \        P
                  \        P                  39   d(   V P                  VP                   RV P                   23# V P                  V P                  3# )z’Translate running and condition status to human readable strings.

Returns (status, extended_status).
Much of this is for backwards compatibility
r(   z - Ú )r'   r+   Úvaluer,   r   r!   r    )r   rl   s   &&r%   Útranslate_statusrp   ’   s•   € ð ”O×)Ñ)Ô)Ø˜9Ÿ?™?Ð+¨3¨w¯}©}¨oÐ>Ð>Ð>à	”o×.Ñ.Ô	.°7Ü×ÑÜ×Ñð?ô 4ð �}‰} §¡Ð 1°°7·=±=°/ÐBÐBÐBØ�=‰=˜'Ÿ-™-Ð'Ð'r$   c                ó$   € V ^8„  d   QhR\         /# )r<   Údetails)r:   )rG   s   "r%   rI   rI   ¦   s   € ÷ ?,ñ ?,¤ñ ?,r$   c                ó¼  € \        VP                  VP                  4      w  r#RVP                  RVP                  P
                  RVRVRVP                  RVP                  RVP                  RVP                  /VP                  CpV P                  R	8X  EdP   R
pVR,          p\        V RV 24       V P                  '       Ed    VP                  R4      '       d   RVR,           R2pMR
pVR,          '       d    RRP                  VR,          4      ,           MRpVR,          '       d|   RRP                  VR,          P!                  4        U	U
Uu. uF?  w  ršV	 R2RP                  V
 Uu. uF  q»P#                  RR4      NK  	  up4      ,           NKA  	  upp
p	4      ,           MRp\        \$        P                  VR,          VVR,          VR,          VVVR7      4       R# R# V P                  R8X  d&   \        \&        P(                  ! V^RRR7      4       R# V P                  R8X  d"   \        \*        P(                  ! V4      4       R# R# u upi u upp
p	i )zPrint status out to the CLI.rD   r?   rZ   Úextended_statusÚdetailrA   rB   rC   r\   Ú zstatus: zlast_update: Ú
z
	- z []z:
	- rn   z {})rt   ÚprefixÚ	boot_coder@   rC   rA   rB   rc   T)ÚindentÚ	sort_keysÚ
separatorsrd   N)Ú,z: )rp   r=   r>   rD   r?   ro   r@   rA   rB   rC   rE   rG   ÚprintÚlongÚgetÚjoinÚitemsÚreplaceÚTABULAR_LONG_TMPLrc   Údumpsr   )Úargsrr   rZ   rt   Údetails_dictrx   ÚstaterC   Úerrors_outputÚkÚvÚiÚrecoverable_errors_outputs   &&           r%   Úprint_statusrŽ   ¦   sQ  € ä.Ø×Ñ × 8Ñ 8óÑ€Fð 	�g×(Ñ(Ø˜G×4Ñ4×:Ñ:Ø�&Ø˜?Ø�'×%Ñ%Ø�'—.‘.Ø˜g×8Ñ8Ø�w×*Ñ*ð
$ð �*‰*ð
$€Lð ‡{�{�iÕØˆð ˜XÕ&ˆÜ��˜  Ð(Ô)Ø�9�9‰9Ø×Ñ ×.Ò.Ø -¨l¸=Õ.IÐ-JÈ"ÐM‘à �ð   ×)Ô)ð ˜8Ÿ=™=¨°hÕ)?Ó@Ö@àð ð  Ð 4×5Ô5ð Ø—)‘)ð %1Ð1EÕ$F×$LÑ$LÔ$Nõñ %O™D˜Að ˜#˜W˜Ø"Ÿ-™-ÁqÓ(IÁqÀ!¯©°4¸Ö)=ÁqÑ(IÓJ÷Kð Ká$Nóóöð ð &ô Ü!×(Ñ(Ø$0Ð1BÕ$CØ!Ø*Ð+=Õ>Ø ,¨XÕ 6Ø +Ø(Ø'@ð )ó ö
ñ- ðB 
�‰˜Ô	ÜÜ�JŠJØ Q°$À;ôö	
ð
 
�‰˜Ô	ÜŒh�nŠn˜\Ó*Ö+ñ 
ùò1 )Jùôs   ÅIÅ.IÆIÉIc                ó$   € V ^8„  d   QhR\         /# ©r<   rP   )Úint)rG   s   "r%   rI   rI   è   s   € ÷ ñ ¤cñ r$   c                ó@  € \        4       p\        W!P                  4      pVP                  '       d    VP                  \        P
                  \        P                  39   dq   VP                  R8X  d>   \        P                  P                  R4       \        P                  P                  4        \        W!P                  4      p\        R4       KŸ  \        W4       VP                  \        P                   8X  d   ^# VP                  \        P"                  8X  d   ^# ^ # )z4Handle calls to 'cloud-init status' as a subcommand.r\   Ú.rT   )r   Úget_status_detailsrO   r=   r   r   r    rG   ÚsysrU   ÚwriteÚflushr   rŽ   r>   r'   r+   r,   )Únamer†   Úpathsrr   s   &&  r%   Úhandle_status_argsrš   è   sÈ   € ô Ó€EÜ  ¯	©	Ó2€GØ‡y‡y€yØ×$Ñ$Ü×%Ñ%Ü×!Ñ!ð)
ô 
ð �{‰{˜iÔ'Ü—
‘
× Ñ  Ô%Ü—
‘
× Ñ Ô"Ü(¨·	±	Ó:ˆGÜ�$ŽKä�Ôð ×Ñ¤?×#8Ñ#8Ô8Ùà	×	!Ñ	!¤_×%=Ñ%=Ô	=ÙÙr$   c                ó$   € V ^8„  d   QhR\         /# r�   ©rQ   )rG   s   "r%   rI   rI     s   € ÷ (ñ (¤tñ (r$   c                ól   €  \        R.V R7      pRV9   #   \        P                   d
    Rp RT9   # i ; i)z?Return whether cloud-init is disabled via environment variable.zshow-environment©rO   rv   úcloud-init=disabled)rX   r   rW   )rO   Úenvs   & r%   Ú_disabled_via_environmentr¡     sK   € ðÜÐ1Ð2¸Ô>ˆð ! CÑ'Ð'øô ×%Ñ%ô Ø‰Ø  CÑ'Ð'ðús   ‚ •3²3c                óF   € V ^8„  d   QhR\         \        \        3,          /# r�   )r   r/   rF   )rG   s   "r%   rI   rI     s   € ÷ '%ñ '%´´}ÄcÐ7IÕ1Jñ '%r$   c                óè  € \        4       P                  4       p\        4       '       g   \        P                  pRpWE3# RV9   d   \        P
                  pRpWE3# \        P                  P                  V 4      '       d%   \        P                  pRP                  V 4      pWE3# RV9   d   \        P                  pRpWE3# R\        P                  P                  RR4      9   g#   \        4       '       d(   \        VR	7      '       d   \        P                  pR
pWE3# \        P                  P                  \        P                  P!                  VP"                  R4      4      '       d   \        P$                  pRpWE3# \        P                  P                  \        P                  P!                  VP"                  R4      4      '       d   \        P&                  pRpWE3# \        P(                  pRpWE3# )a@  Report whether cloud-init current boot status

@param disable_file: The path to the cloud-init disable file.
@param paths: An initialized cloudinit.helpers.Paths object.
@param wait: If user has indicated to wait for cloud-init to complete.
@returns: A tuple containing (code, reason) about cloud-init's status and
why.
zCloud-init enabled on sysvinitzcloud-init=enabledz<Cloud-init enabled by kernel command line cloud-init=enabledzCloud-init disabled by {0}rŸ   z;Cloud-init disabled by kernel parameter cloud-init=disabledÚKERNEL_CMDLINErv   rž   zNCloud-init disabled by environment variable KERNEL_CMDLINE=cloud-init=disabledr   z+Cloud-init disabled by cloud-init-generatorÚenabledz2Cloud-init enabled by systemd cloud-init-generatorz'Systemd generator may not have run yet.)r   Úsplitr   r/   r7   r6   ÚosÚpathÚexistsr3   rG   r2   Úenvironr€   r¡   r4   r�   Úrun_dirr1   r5   r8   )Údisable_filer™   rO   Úcmdline_partsÚbootstatus_codeÚreasons   &&&   r%   Úget_bootstatusr°     s¨  € ô  “M×'Ñ'Ó)€MÜ�>Š>Ü'×;Ñ;ˆØ1ˆð6 Ð$Ð$ð5 
 Ô	.Ü'×AÑAˆØOˆð0 Ð$Ð$ô/ 
�‰�‰˜×	%Ò	%Ü'×?Ñ?ˆØ-×4Ñ4°\ÓBˆð* Ð$Ð$ð) 
 -Ô	/Ü'×BÑBˆØNˆð$ Ð$Ð$ð# 
¤"§*¡*§.¡.Ð1AÀ2Ó"FÔ	FÜ�ŠÔ4¸$×?Ó?ä'×@Ñ@ˆð1ð 	ð Ð$Ð$ô 
�‰�‰œŸ™Ÿ™ U§]¡]°JÓ?×	@Ò	@Ü'×=Ñ=ˆØ>ˆð Ð$Ð$ô 
�‰�‰œŸ™Ÿ™ U§]¡]°IÓ>×	?Ò	?Ü'×<Ñ<ˆØEˆð Ð$Ð$ô (×/Ñ/ˆØ:ˆØÐ$Ð$r$   c                ó$   € V ^8„  d   QhR\         /# r�   rœ   )rG   s   "r%   rI   rI   6  s   € ÷ ñ œtñ r$   c                  óJ   € \        \        4       4      P                  \        9  # ©N)r”   r   r?   ÚDISABLED_BOOT_CODESr   r$   r%   Úis_cloud_init_enabledrµ   6  s    € äœ>Ó+Ó,×=Ñ=Ü"ñ	#ðr$   c                ó0   € V ^8„  d   QhR\         R\         /# )r<   rO   rP   rœ   )rG   s   "r%   rI   rI   =  s   € ÷ 8ñ 8œð 8¤$ñ 8r$   c                ó²  € R Fù  p \        RRV.V R7      p\        TP                  4        UUu. uF0  qDP                  R4       Uu. uF  qUP                  4       NK  	  upNK2  	  upp4      pTR	,          P                  R
4      '       g   TR	,          R8X  g    R# TR,          R8X  d3   TR,          R8X  d   K·  TR,          R8X  d   TR,          R8X  d    R#  R# TR,          R8X  g   TR,          R8X  d    R#  R# 	  R#   \        P                   d5   p\        RTP                   2\
        P                  R7        Rp? R# Rp?ii ; iu upi u uppi )z2Return if systemd units report a cloud-init error.Úshowz5--property=ActiveState,UnitFileState,SubState,MainPIDrž   z^Failed to get status from systemd. Cloud-init status may be inaccurate. Error from systemctl: )ÚfileNFÚ=ÚUnitFileStater¥   ÚstaticTÚActiveStateÚactiveÚSubStateÚexitedr   ÚMainPIDÚ0Úfailed)zcloud-final.servicezcloud-config.servicezcloud-init-network.servicezcloud-init-local.servicezcloud-init-main.service)rX   r   rW   r~   Ústderrr•   ÚdictÚ
splitlinesr¦   rV   Ú
startswith)rO   ÚservicerU   ÚeÚrÚxÚstatess   &      r%   Úsystemd_failedrÍ   =  sO  € óˆð	Ü$àØKØðð
 ôˆFô" Ø8>×8IÑ8IÔ8KÔLÑ8K°1§¡¨¤Ó.¡˜A�g‰gŽi¡Ô.Ñ8KÒLó
ˆð �?Õ#×.Ñ.¨y×9Ò9Ø�oÕ&¨(Ô2ò Ø�MÕ" hÔ.Ø�jÕ! XÔ-áØ˜
Õ# yÔ0°V¸IÕ5FÈ#Ô5Mò ò ð �=Õ! XÔ-°¸
Õ1CÀxÔ1Oâò ñgñl øôM ×)Ñ)ô 	äð)à)*¯©¨
ð4ô —Z‘Zõ	ö ûð	üò /ùÓLs.   ‡D¯EÁEÁEÄEÄ(EÅEÅEc                ó$   € V ^8„  d   QhR\         /# r�   rœ   )rG   s   "r%   rI   rI   x  s   € ÷ Kñ K¬Dñ Kr$   c                ó˜   € \         P                  P                  V 4      ;'       d%    \         P                  P                  V4      '       * # )z%Return True if cloud-init is running.)r§   r¨   r©   )Ústatus_fileÚresult_files   &&r%   Ú
is_runningrÒ   x  s-   € ä�7‰7�>‰>˜+Ó&×JÐJ¬r¯w©w¯~©~¸kÓ/JÔ+JÐJr$   c                ó$   € V ^8„  d   QhR\         /# r�   )r   )rG   s   "r%   rI   rI   }  s   € ÷ )ñ )äñ)r$   c                óÈ   € V\         9   d   \        P                  # \        W4      '       d   \        P                  # V^ 8”  d   \        P
                  # \        P                  # )z(Return the running status of cloud-init.)r´   r   r"   rÒ   r    r!   r   )rÐ   rÑ   r?   Úlatest_events   &&&&r%   Úget_running_statusrÖ   }  sP   € ð Ô.Ô.Ü×%Ñ%Ð%Ü	�K×	-Ò	-Ü×$Ñ$Ð$Ø	˜Ô	Ü×!Ñ!Ð!ä×(Ñ(Ð(r$   c                ó$   € V ^8„  d   QhR\         /# r�   )rF   )rG   s   "r%   rI   rI   ‹  s   € ÷ 	ñ 	¤ñ 	r$   c                ó¤   € V P                  RR4      pV'       d6   VP                  R4      w  p pVP                  4       P                  RR4      pV# )zqGet the datasource from status.json.

Return a lowercased non-prefixed version. So "DataSourceEc2" becomes "ec2"
rD   rv   rn   )r€   Ú	partitionÚlowerrƒ   )Ú	status_v1rD   ÚdsÚ_s   &   r%   Úget_datasourcerÞ   ‹  sK   € ð
 —‘˜|¨RÓ0€JßØ×'Ñ'¨Ó,‰ˆˆAˆqØ—X‘X“Z×'Ñ'¨°bÓ9ˆ
ØÐr$   c                ó‚   € V P                  R4      pV'       d   V# V P                  R4      '       d   RV R,           2# V# )z°Return a description of the current status.

If we have a datasource, return that. If we're running in a particular
stage, return that. Otherwise, return the boot_description.
rD   ÚstagezRunning in stage: )r€   )rÛ   Úboot_descriptionrD   s   && r%   Úget_descriptionrâ   —  sC   € ð —‘˜|Ó,€JßØÐØ	�‰�w×	Ò	Ø# I¨gÕ$6Ð#7Ð8Ð8àÐr$   c                óæ   € ^ pV P                  4        FZ  p\        V\        4      '       g   K  \        TVP	                  R4      ;'       g    ^ VP	                  R4      ;'       g    ^ 4      pK\  	  V# )z,Return the latest event time from status_v1.ÚstartÚfinished)ÚvaluesÚ
isinstancerÅ   Úmaxr€   )rÛ   rÕ   Ú
stage_infos   &  r%   Úget_latest_eventrê   ¦  sd   € à€LØ×&Ñ&Ö(ˆ
Ü�j¤$×'Ô'ÜØØ—‘˜wÓ'×,Ð,¨1Ø—‘˜zÓ*×/Ð/¨aóŠLñ )ð Ðr$   c                óF   € V ^8„  d   QhR\         \        \        3,          /# r�   )r   r   r   )rG   s   "r%   rI   rI   ³  s   € ÷ &ñ &œU¤4¬ :Õ.ñ &r$   c                óˆ  € . p/ p\        V P                  4       4       FŸ  w  r4\        V\        4      '       g   K  VP	                  VP                  R. 4      4       VP                  R/ 4      pVP                  4        F;  pWb9  d   \        WV,          4      W&&   K  W&,          P	                  WV,          4       K=  	  K¡  	  W3# )z>Return a list of errors and recoverable_errors from status_v1.rA   rB   )Úsortedr‚   rç   rÅ   Úextendr€   Úkeysr   )rÛ   rA   rB   Ú_keyré   Úcurrent_recoverable_errorsÚerr_types   &      r%   Ú
get_errorsró   ³  s³   € à€FØÐÜ" 9§?¡?Ó#4Ö5ÑˆÜ�j¤$×'Ô'Ø�M‰M˜*Ÿ.™.¨°2Ó6Ô7ð *4¯©Ø$ bó*Ð&ð 7×;Ñ;Ö=�ØÔ5Ü3;Ø2Õ<ó4Ð&Ó0ð 'Õ0×7Ñ7Ø2Õ<öó >ñ 6ð" Ð%Ð%r$   c                óR   € V ^8„  d   QhR\         \        ,          R\        R\        /# )r<   r™   rO   rP   )r
   r   rQ   r:   )rG   s   "r%   rI   rI   Ë  s-   € ÷ Dñ DÜ”E�?ðDÜ)-ðDäñDr$   c                ó$  € \         P                  pT ;'       g    \        4       p \        P                  P                  V P                  R4      p\        P                  P                  V P                  R4      p\        \        W4      w  rV/ p\        P                  P                  V4      '       d%   \        \        V4      4      P                  R/ 4      p\        V4      p\        Wv4      p	\        V4      p
V
'       d9   \         P"                  ! V
\$        P&                  R7      pVP)                  R4      pMRp\+        V4      w  rÞV'       d   \         P,                  pMV'       d   \         P.                  p\1        W4WZ4      pV\2        P4                  8X  dV   \7        4       '       dF   \9        VR7      '       d4   \2        P:                  p\         P,                  pRp	VP=                  R	4       VP?                  R
R4       \A        VVVV	VVVVV4	      # )zñReturn a dict with status, details and errors.

@param paths: An initialized cloudinit.helpers.paths object.
@param wait: If user has indicated to wait for cloud-init to complete.

Values are obtained from parsing paths.run_dir/status.json.
zstatus.jsonzresult.jsonrE   )Útzz%a, %d %b %Y %H:%M:%S %zrv   rž   z"Failed due to systemd unit failurez‹Failed due to systemd unit failure. Ensure all cloud-init services are enabled, and check 'systemctl' or 'journalctl' for more information.rD   N)!r'   r-   r   r§   r¨   r�   r«   r°   ÚCLOUDINIT_DISABLED_FILEr©   r   r   r€   rÞ   râ   rê   r   Úfromtimestampr   ÚutcÚstrftimeró   r+   r,   rÖ   r   r    r   rÍ   r!   ÚappendÚpopr:   )r™   rO   r>   rÐ   rÑ   r?   rá   rÛ   rD   r@   rÕ   ÚdtrC   rA   rB   r=   s   &&              r%   r”   r”   Ë  s¦  € ô '×-Ñ-ÐØ×%Ð%”^Ó%€EÜ—'‘'—,‘,˜uŸ}™}¨mÓ<€KÜ—'‘'—,‘,˜uŸ}™}¨mÓ<€KÜ)7Ü ó*Ñ&Ðð €IÜ	‡w�w‡~�~�k×"Ò"Üœn¨[Ó9Ó:×>Ñ>¸tÀRÓHˆ	ä 	Ó*€JÜ! )Ó>€Kä# IÓ.€LßÜ×#Ò# L´X·\±\ÔBˆØ—k‘kÐ"<Ó=‰àˆä!+¨IÓ!6Ñ€FßÜ*×0Ñ0Ñß	Ü*×3Ñ3Ðä'ØÐ"2ó€Nð
 	œ-×/Ñ/Ô/Ü�NŠNÜ ×%Ó%ä&×+Ñ+ˆÜ*×0Ñ0ÐØ:ˆØ�‰ð$ô	
ð ‡M�M�, Ô%äØØØØØØØØØó
ð 
r$   c                 óv   € \        4       p \        P                  ! \        RV P	                  4       4      4       R# )z$Tool to report status of cloud-init.rZ   N)rj   r•   Úexitrš   Ú
parse_argsrh   s    r%   Úmainr    s&   € ä‹\€FÜ‡H‚HÔ ¨&×*;Ñ*;Ó*=Ó>Ö?r$   Ú__main__r³   )NF)@r   re   Úenumrc   r§   r•   Úcopyr   r   r   Útimer   Útypingr   r   r   r	   r
   r   Ú	cloudinitr   r   Úcloudinit.cmd.develr   Úcloudinit.distrosr   Úcloudinit.helpersr   Úcloudinit.utilr   r   r   r÷   ÚuniqueÚEnumr   r'   r/   Ú	frozensetr1   r2   r3   r4   r´   r:   r„   rX   rj   rp   rŽ   rš   r¡   r°   rµ   rÍ   rÒ   rÖ   rÞ   râ   rê   ró   r”   r  r   r   r$   r%   Ú<module>r     se  ðñ Nã Û Û Û 	Û 
Ý ß 'Ý ß ?× ?ç $Ý .Ý *Ý #ß AÑ Aà:Ð ð ‡�ô�D—I‘Ió ó ðð ‡�ô�d—i‘ió ó ðð ‡�ô
�D—I‘Ió 
ó ð
ñ  à×+Ñ+Ø×0Ñ0Ø×-Ñ-Ø×.Ñ.ð	óÐ ô	�Jô 	ð+Ð õô%õP(õ(?,õDõ6(õ'%õTõ8õvKõ
)õ	ò ò
õ&÷0DòN@ð ˆzÔÙ†Fñ r$   