
    x[h              
       
   % S r SSKrSSK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  S
rS/rS\/\/ SQS.r\\S'   \R0                  " \5      rS r SS\S\S\4S jjrS\S\S\	S\SS4
S jr g)zEPackage Update Upgrade Install: update, upgrade, and install packages    N)signal_handlersubputil)Cloud)Config)
MetaSchema)ALL_DISTROS)flush_loggers)PER_INSTANCE)z/var/run/reboot-requiredz/run/reboot-neededz/sbin/reboot!cc_package_update_upgrade_install)
apt_updatepackage_updateapt_upgradepackage_upgradepackages)iddistros	frequencyactivate_by_schema_keysmetac                 R    U H!  n[         R                  " XS5      (       d  M!    g   g)NFT)r   get_cfg_option_bool)cfgkeysks      T/usr/lib/python3/dist-packages/cloudinit/config/cc_package_update_upgrade_install.py_multi_cfg_bool_getr   (   s'    ##CE22      wait_attemptsinitial_sleepbackoffc                    [         R                  " 5          [        R                  " [        5        SSS5        [        R
                  " 5       nUn[        U 5       HT  n[        R                  " U5        XB-  n[        R
                  " 5       U-
  n[        R                  S[        U5      5        MV     [        R
                  " 5       U-
  n[        S[        U5      -  5      e! , (       d  f       N= f)z@Run a reboot command and panic if it doesn't happen fast enough.Nz,Rebooted, but still running after %s secondsz'Reboot did not happen after %s seconds!)r   suspend_crashr   
REBOOT_CMDtime	monotonicrangesleepLOGdebugintRuntimeError)r   r    r!   start	wait_time_ielapseds          r   _fire_rebootr1   /   s     
	%	%	'		* 
(NNEIM"

9	.."U*		@#g,O	 # nn&G
1S\B  
(	's   C""
C0namer   cloudargsreturnc                    [        USS5      n[        USS5      n[        USS5      n[        R                  " US/ 5      n/ nU(       d  U(       a   UR                  R	                  5         U(       a   UR                  R                  S	5        [        U5      (       a   UR                  R                  U5        [         H+  n
[        R                  R                  U
5      nU(       d  M+    O   U(       d  U(       a>  U(       a7  W(       a0   [        R!                  SW
5        [#        [        5        [%        5         [        U5      (       a$  [        R'                  S[        U5      5        US   eg ! [
         a7  n	[        R                  " [        S5        UR                  U	5         S n	A	GNAS n	A	ff = f! [
         a7  n	[        R                  " [        S
5        UR                  U	5         S n	A	GNbS n	A	ff = f! [
         a8  n	[        R                  " [        SU5        UR                  U	5         S n	A	GN{S n	A	ff = f! [
         a7  n	[        R                  " [        S5        UR                  U	5         S n	A	GN>S n	A	ff = f)Nr   r   r   r   apt_reboot_if_requiredpackage_reboot_if_requiredr   zPackage update failedupgradezPackage upgrade failedz/Failure when attempting to install packages: %sz7***WARNING*** Rebooting after upgrade or install per %sz Requested reboot did not happen!z2%s failed with exceptions, re-raising the last one)r   r   get_cfg_option_listdistroupdate_package_sources	Exceptionlogexcr)   appendpackage_commandleninstall_packagesREBOOT_FILESospathisfileinfor
   r1   warning)r2   r   r3   r4   updater9   reboot_if_requiredpkglisterrorsereboot_markerreboot_fn_existss               r   handlerQ   E   s    l4DEF!#'8-HG,%'C &&sJ;GF	LL//1
 	LL((3
 7||	LL))'2 &77>>-8 & 	7 27G
	HHI
 #N
 6{{@#f+	
 Rj	 S  	KK45MM!	  	KK56MM!	  	KKF MM!		.  	KK?@MM!	s`   E0 3F4 G8 /H= 0
F1:,F,,F14
G5>,G00G58
H:-H55H:=
I>,I99I>)         )!__doc__loggingrE   r%   	cloudinitr   r   r   cloudinit.cloudr   cloudinit.configr   cloudinit.config.schemar   cloudinit.distrosr	   cloudinit.log.loggersr
   cloudinit.settingsr   rD   r$   r   __annotations__	getLogger__name__r)   r   r+   r1   strlistrQ    r   r   <module>rd      s    L  	  0 0 ! # . ) / +A
 .} 	j  ! DE+.=@,: :6 :% :t : :r   