o id @sXddlmZddlmZddlmZddlmZddlm Z ddl Z GdddeZ dS) ) UbuntuPlugin) DebianPolicy)SnapPackageManager)DpkgPackageManager)MultiPackageManagerNcs|eZdZdZdZddgZdZdZdZdZ dZ dfd d Z e dddZ ddZfddZddZfddZZS) UbuntuPolicyUbuntu Canonical)zCommunity Websitezhttps://www.ubuntu.com/)zCommercial Supportzhttps://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/ubuntuputNTcs\tt|j||||dtttg|j|d|_|jdddkr$d|_ |j t g7_ dS)N)sysrootinit probe_runtime remote_exec)primary fallbackschrootr sosreport pkg_managersnapz /snap/bin) superr__init__rrrr package_manager pkg_by_name sos_bin_pathvalid_subclassesr)selfr r rr __class__=/usr/lib/python3/dist-packages/sos/policies/distros/ubuntu.pyr!s&zUbuntuPolicy.__init__cCsb|r|j|vSztdd}d|vWdWS1swYWdSty0YdSw)z[This method checks to see if we are running on Ubuntu. It returns True or False./etc/lsb-releaserrNF)distroopenreadIOError)clsremotefprrr check3s   ( zUbuntuPolicy.checkc Cszrrr get_upload_url_stringTsz"UbuntuPolicy.get_upload_url_stringcsF|jr |j|jr|js|jStj|j}|j|Stt| Sr7) r8r9r:upload_archive_nameospathbasenamerrr?)rfnamerrr r?Zs  zUbuntuPolicy.get_upload_url)NNTN)r!)__name__ __module__ __qualname__r$vendor vendor_urlsPATHr:r;r<_upload_methodr classmethodr+r6r=r@r? __classcell__rrrr rs(  r) sos.report.pluginsrsos.policies.distros.debianr"sos.policies.package_managers.snapr"sos.policies.package_managers.dpkgrsos.policies.package_managersrrBrrrrr s