
    -_g                     ^    d dl Z 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
  G d de      Zy)	    N)UbuntuPlugin)DebianPolicy)SnapPackageManager)DpkgPackageManager)MultiPackageManagerc                   n     e Zd ZdZddgZdZdZdZdZdZ	dZ
d	Z	 	 d fd
	Zd Zd fd	Zd Z fdZ xZS )UbuntuPolicy	Canonical)zCommunity Websitezhttps://www.ubuntu.com/)zCommercial Supportzhttps://www.canonical.comUbuntu zb/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        g| j
                  |      | _        	 | j                  j                  d      d   dk(  rd| _        | xj                  t        gz  c_
        y # t        $ r Y &w xY w)N)sysrootinitprobe_runtimeremote_exec)primary	fallbackschrootr   	sosreportpkg_managersnapz	/snap/bin)super__init__r   r   r   r   package_managerpkg_by_namesos_bin_path	TypeErrorvalid_subclassesr   )selfr   r   r   r   	__class__s        =/usr/lib/python3/dist-packages/sos/policies/distros/ubuntu.pyr   zUbuntuPolicy.__init__"   s    t'4%0 	 	2  3&)*<<#	 %	##//!!.039:$/!
 	,/	  		s   (B   	BBc                    	 t        d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
        z/etc/lsb-releaserzutf-8)encodingDISTRIB_RELEASE=   NF)open	readlinesfloatsplitstripIOError
ValueError)r!   fplineslines       r#   dist_versionzUbuntuPolicy.dist_version8   s    	(#@ AB! AD(D0$TZZ_Q%7%=%=%?@@	A AAA
 A
 $ 		s?   A8 A,,A,	A8 !A,#A8 ,A51A8 5A8 8B
	B
c                     | j                   j                  | j                        r| j                  | j                  fS t
        |          S N)
upload_url
startswith_upload_url_upload_user_upload_passwordr   get_upload_https_auth)r!   userpasswordr"   s      r#   r<   z"UbuntuPolicy.get_upload_https_authE   s@    ??%%d&6&67%%t'<'<==w,..    c                     | j                   j                  | j                        ry| j                  | j	                               S )NzCanonical Support File Server)r7   r8   r9   _get_obfuscated_upload_urlget_upload_url)r!   s    r#   get_upload_url_stringz"UbuntuPolicy.get_upload_url_stringJ   s7    ??%%d&6&672..t/B/B/DEEr?   c                 "   | j                   r%| j                   j                  | j                        rP| j                  s| j                  S t        j
                  j                  | j                        }| j                  |z   S t        | !         S r6   )	r7   r8   r9   upload_archive_nameospathbasenamer   rB   )r!   fnamer"   s     r#   rB   zUbuntuPolicy.get_upload_urlO   so    $//"<"<T=M=M"N++'''GG$$T%=%=>E##e++w%''r?   )NNTN)NN)__name__
__module____qualname__vendorvendor_urlsos_release_nameos_release_filePATHr9   r:   r;   _upload_methodr   r4   r<   rC   rB   __classcell__)r"   s   @r#   r	   r	      sb    F8;K OO9D@KLN>B!0,/
F
( (r?   r	   )rF   sos.report.pluginsr   sos.policies.distros.debianr   "sos.policies.package_managers.snapr   "sos.policies.package_managers.dpkgr   sos.policies.package_managersr   r	    r?   r#   <module>rZ      s'    
 + 4 A A =B(< B(r?   