Ë
    i©¹dÂ  ã                   ó^   — 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
Z
 G d„ de«      Zy)	é    )ÚUbuntuPlugin)ÚDebianPolicy)ÚSnapPackageManager)ÚDpkgPackageManager)ÚMultiPackageManagerNc                   óz   ‡ — e Zd ZdZdZddgZdZdZdZdZ	dZ
	 	 dˆ fd	„	Zedd
„«       Zd„ Zˆ fd„Zd„ Zˆ fd„Zˆ xZS )ÚUbuntuPolicyÚUbuntuÚ	Canonical)zCommunity Websitezhttps://www.ubuntu.com/)zCommercial Supportzhttps://www.canonical.comzb/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/sbin:/usr/local/bin:/snap/binz,https://files.support.canonical.com/uploads/ÚubuntuÚputc                 ó  •— t         t        | �  ||||¬«       t        t        t
        g| j                  |¬«      | _        | j                  j                  d«      d   dk(  rd| _	        | xj                  t        gz  c_
        y )N)ÚsysrootÚinitÚprobe_runtimeÚremote_exec)ÚprimaryÚ	fallbacksÚchrootr   Ú	sosreportÚpkg_managerÚsnapz	/snap/bin)Úsuperr	   Ú__init__r   r   r   r   Úpackage_managerÚpkg_by_nameÚsos_bin_pathÚvalid_subclassesr   )Úselfr   r   r   r   Ú	__class__s        €ú=/usr/lib/python3/dist-packages/sos/policies/distros/ubuntu.pyr   zUbuntuPolicy.__init__!   sˆ   ø€ äŒl˜DÑ*°7ÀØ9FØ7Bð 	+ô 	Dô  3Ü&Ü)Ð*Ø—<‘<Ø#ô	 %ˆÔð ×Ñ×+Ñ+ØóØ*ñ,Ø/5ò6à +ˆDÔà×Ò¤, Ñ/Öó    c                 óª   — |r| j                   |v S 	 t        dd«      5 }d|j                  «       v cddd«       S # 1 sw Y   yxY w# t        $ r Y yw xY w)z[This method checks to see if we are running on Ubuntu.
           It returns True or False.ú/etc/lsb-releaseÚrr
   NF)ÚdistroÚopenÚreadÚIOError)ÚclsÚremoteÚfps      r!   ÚcheckzUbuntuPolicy.check3   s\   € ñ
 Ø—:‘: Ð'Ð'ð	ÜÐ(¨#Ó.ð -°"Ø 2§7¡7£9Ð,÷-÷ -ò -ûäò 	Ùð	ús*   ’A ž:°	A ºA¿A ÁA Á	AÁAc                 ó  — 	 t        dd«      5 }|j                  «       }|D ]<  }d|v sŒt        |j                  d«      d   j	                  «       «      c cddd«       S  	 ddd«       y# 1 sw Y   yxY w# t
        t        f$ r Y yw xY w)z7 Returns the version stated in DISTRIB_RELEASE
        r$   r%   ÚDISTRIB_RELEASEú=é   NF)r'   Ú	readlinesÚintÚsplitÚstripr)   Ú
ValueError)r   r,   ÚlinesÚlines       r!   Údist_versionzUbuntuPolicy.dist_versionA   s‘   € ð	ÜÐ(¨#Ó.ð ?°"ØŸ™›�Ø!ò ?�DØ(¨DÒ0Ü" 4§:¡:¨c£?°1Ñ#5×#;Ñ#;Ó#=Ó>Ñ>÷	?ñ ?ñ?÷?ð
 ÷?ð
 ûÜœÐ$ò 	Ùð	ús?   ‚A6 ŽA*©,A*Á	A6 ÁA*Á!A6 Á*A3Á/A6 Á3A6 Á6BÂBc                 ó¢   •— | j                   j                  | j                  «      r| j                  | j                  fS t
        t        | �  «       S ©N)Ú
upload_urlÚ
startswithÚ_upload_urlÚ_upload_userÚ_upload_passwordr   r	   Úget_upload_https_auth)r   r    s    €r!   rA   z"UbuntuPolicy.get_upload_https_authN   sB   ø€ Ø�?‰?×%Ñ% d×&6Ñ&6Ô7Ø×%Ñ% t×'<Ñ'<Ð=Ð=äœ tÑBÓDÐDr"   c                 ón   — | j                   j                  | j                  «      ry| j                  «       S )NzCanonical Support File Server)r<   r=   r>   Úget_upload_url)r   s    r!   Úget_upload_url_stringz"UbuntuPolicy.get_upload_url_stringT   s,   € Ø�?‰?×%Ñ% d×&6Ñ&6Ô7Ø2à×&Ñ&Ó(Ð(r"   c                 ó*  •— | j                   r%| j                   j                  | j                  «      rP| j                  s| j                  S t        j
                  j                  | j                  «      }| j                  |z   S t        t        | �'  «       S r;   )
r<   r=   r>   Úupload_archive_nameÚosÚpathÚbasenamer   r	   rC   )r   Úfnamer    s     €r!   rC   zUbuntuPolicy.get_upload_urlZ   sq   ø€ Ø�Š $§/¡/×"<Ñ"<¸T×=MÑ=MÔ"NØ×+Ò+Ø×'Ñ'Ð'Ü—G‘G×$Ñ$ T×%=Ñ%=Ó>ˆEØ×#Ñ# eÑ+Ð+Ü”\ 4Ñ7Ó9Ð9r"   )NNTN)Ú )Ú__name__Ú
__module__Ú__qualname__r&   ÚvendorÚvendor_urlsÚPATHr>   r?   r@   Ú_upload_methodr   Úclassmethodr-   r9   rA   rD   rC   Ú__classcell__)r    s   @r!   r	   r	      so   ø„ Ø€FØ€Fà8Ø;ð€Kð9€Dà@€KØ€LØÐØ€Nà>BØ!õ0ð$ òó ðòôEò)÷:ð :r"   r	   )Úsos.report.pluginsr   Úsos.policies.distros.debianr   Ú"sos.policies.package_managers.snapr   Ú"sos.policies.package_managers.dpkgr   Úsos.policies.package_managersr   rG   r	   © r"   r!   ú<module>r[      s'   ðõ ,Ý 4å AÝ AÝ =ã 	ôM:�<õ M:r"   