
    x[h                     v    S SK r S SKJrJr  S SKJrJr  S SKJrJ	r	  \ R                  " \5      r " S S\5      rg)    N)IterableList)subputil)PackageManagerUninstalledPackagesc                   V    \ rS rSrSrS\4S jrSS.S jrS\S\	4S	 jr
\S
 5       rSrg)Snap   snapreturnc                 @    [        [        R                  " S5      5      $ )Nr   )boolr   which)selfs    K/usr/lib/python3/dist-packages/cloudinit/distros/package_management/snap.py	availableSnap.available   s    DJJv&''    F)forcec                    g )N )r   r   s     r   update_package_sourcesSnap.update_package_sources   s    r   pkglistc                 8   [         R                  " S[        U5      5      n/ nU H/  n [        R                  " SS/UR	                  SS5      -   5        M1     U$ ! [        R
                   a+    UR                  U5        [        R                  SU5         Ms  f = f)Nz%s=%sr   install=   zFailed to 'snap install %s'!)	r   expand_package_listlistr   splitProcessExecutionErrorappendLOGinfo)r   r   failedpkgs       r   install_packagesSnap.install_packages   s     **7DMBC>		69-		#q0AAB   -- >c"7=>s   +A;BBc                     / SQn S n [         R                   " U 5      n[        R                  " UR                  5      R	                  S0 5      R	                  S5      nUS:X  a  [        R                  SU5        g [         R                   " SS/5        g ! [         R
                   a!  n[        R                  SU U5         S nANfS nAff = f)N)r   getsystemz-drefreshholdz9Continuing to snap refresh. Unable to run command: %s: %sforeverz9Skipping snap refresh because refresh.hold is set to '%s'r   )r   r   	load_jsonstdoutr,   r#   r%   r&   )command	snap_holdresultes       r   upgrade_packagesSnap.upgrade_packages$   s    1	
	YYw'Fv}}-11)R@DDVL  	!HHK
 IIvy)* )) 	HHK 	s   AB C'CCr   N)__name__
__module____qualname____firstlineno__namer   r   r   r   r   r)   staticmethodr7   __static_attributes__r   r   r   r
   r
      sE    D(4 ( /4  5H  + +r   r
   )loggingtypingr   r   	cloudinitr   r   4cloudinit.distros.package_management.package_managerr   r   	getLoggerr9   r%   r
   r   r   r   <module>rE      s1     !  
 !++> ++r   