U
    -_g                     @   sX   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 deZdS )	    N)UbuntuPlugin)DebianPolicy)SnapPackageManager)DpkgPackageManager)MultiPackageManagerc                       sp   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d	Zdd Zd fdd	Zdd Z fddZ  ZS )UbuntuPolicyZ	Canonical)zCommunity Websitezhttps://www.ubuntu.com/)zCommercial Supportzhttps://www.canonical.comZ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/ZubuntuZputNTc                    sr   t  j||||d tttg| j|d| _z| jdd dkrFd| _W n t	k
r\   Y nX |  j
tg7  _
d S )N)sysrootinitprobe_runtimeremote_exec)ZprimaryZ	fallbackschrootr   Z	sosreportZpkg_managerZsnapz	/snap/bin)super__init__r   r   r   r	   Zpackage_managerZpkg_by_nameZsos_bin_path	TypeErrorZvalid_subclassesr   )selfr	   r
   r   r   	__class__ =/usr/lib/python3/dist-packages/sos/policies/distros/ubuntu.pyr   "   s,    

zUbuntuPolicy.__init__c              
   C   s   zbt ddddH}| }|D ]4}d|krt|dd    W  5 Q R  W S qW 5 Q R X W dS  ttfk
r|   Y dS X d	S )
z7 Returns the version stated in DISTRIB_RELEASE
        z/etc/lsb-releaserzutf-8)encodingZDISTRIB_RELEASE=   FN)open	readlinesfloatsplitstripIOError
ValueError)r   fplinesliner   r   r   dist_version8   s    4zUbuntuPolicy.dist_versionc                    s$   | j | jr| j| jfS t  S N)
upload_url
startswith_upload_url_upload_user_upload_passwordr   get_upload_https_auth)r   userZpasswordr   r   r   r+   E   s    z"UbuntuPolicy.get_upload_https_authc                 C   s    | j | jrdS | |  S )NzCanonical Support File Server)r&   r'   r(   Z_get_obfuscated_upload_urlget_upload_url)r   r   r   r   get_upload_url_stringJ   s    z"UbuntuPolicy.get_upload_url_stringc                    sB   | j r| j | jr8| js | jS tj| j}| j| S t  S r%   )	r&   r'   r(   Zupload_archive_nameospathbasenamer   r-   )r   fnamer   r   r   r-   O   s    
zUbuntuPolicy.get_upload_url)NNTN)NN)__name__
__module____qualname__ZvendorZvendor_urlsZos_release_nameZos_release_filePATHr(   r)   r*   Z_upload_methodr   r$   r+   r.   r-   __classcell__r   r   r   r   r      s$     r   )r/   Zsos.report.pluginsr   Zsos.policies.distros.debianr   Z"sos.policies.package_managers.snapr   Z"sos.policies.package_managers.dpkgr   Zsos.policies.package_managersr   r   r   r   r   r   <module>	   s   