
    f                     v    d dl Z d dlmZmZ d dlmZmZ d dlmZm	Z	  e j                  e      Z G d de      Zy)    N)IterableList)subputil)PackageManagerUninstalledPackagesc                   B    e Zd ZdZdefdZd ZdedefdZ	e
d        Zy)	Snapsnapreturnc                 >    t        t        j                  d            S )Nr   )boolr   whichselfs    K/usr/lib/python3/dist-packages/cloudinit/distros/package_management/snap.py	availablezSnap.available   s    DJJv&''    c                      y )N r   s    r   update_package_sourceszSnap.update_package_sources   s    r   pkglistc                 ,   t        j                  dt        |            }g }|D ]-  }	 t        j                  ddg|j	                  dd      z          / |S # t        j
                  $ r* |j                  |       t        j                  d|       Y nw xY w)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_packageszSnap.install_packages   s     **7DMB 	>C>		69-		#q0AAB	>  -- >c"7=>s   *A:BBc                  2    t        j                   ddg       y )Nr   refresh)r   r   r   r   upgrade_packageszSnap.upgrade_packages$   s    		69%&r   N)__name__
__module____qualname__namer   r   r   r   r   r&   staticmethodr)   r   r   r   r
   r
      s@    D(4 ( 5H  ' 'r   r
   )loggingtypingr   r   	cloudinitr   r   4cloudinit.distros.package_management.package_managerr   r   	getLoggerr*   r"   r
   r   r   r   <module>r4      s3     !  
 g!'> 'r   