+
    Û1jk+  ã                   ó   € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHtHt  ]! ]P$                  ! 4       P&                  ^x4      t ! R R	]	4      t ! R
 R4      tR#   ] d    ^xt L"i ; i)é    N)ÚOrderedDict)Úfill)ÚSoSComponent)Úimport_policy)ÚPlugin)ÚboldÚImporterHelperc                   óŽ   a a€ ] tR t^t oRtRtRtRtRtRR/t	V 3R lt
]R 4       tR tR	 tR
 tR tR tR tR tR tRtVtV ;t# )Ú	SoSHelperzProvide better, more in-depth help for specific parts of sos than is
provided in either standard --help output or in manpages.
zDetailed help infomationFÚtopicÚ c                ó^   <€ \         SV `  WV4       V P                  P                  V n        R # )N)ÚsuperÚ__init__Úoptsr   )ÚselfÚparserÚargsÚcmdlineÚ	__class__s   &&&&€Ú3/usr/lib/python3/dist-packages/sos/help/__init__.pyr   ÚSoSHelper.__init__+   s!   ø€ Ü‰Ñ˜ wÔ/Ø—Y‘Y—_‘_ˆŽ
ó    c                ód   € R Vn         VP                  RR4      pVP                  RRRRRR7       R	# )
zsos help TOPIC [options]zHelp Information Optionsz<These options control what detailed information is displayedr   ÚTOPICr   Ú?z/name of the topic or component to show help for)ÚmetavarÚdefaultÚnargsÚhelpN)ÚusageÚadd_argument_groupÚadd_argument)Úclsr   Úhelp_grps   && r   Úadd_parser_optionsÚSoSHelper.add_parser_options/   sA   € à1ˆŒØ×,Ñ,Ø&ØJó
ˆð 	×Ñ˜g¨wÀÈ#ð%/ð 	ö 	1r   c                óô   € V P                   P                  P                  R 4      ^ ,          pRRRRRR/pW9   d>   V P                   P                  P                  WV,          4      V P                   n        R# R# )Ú.ÚcleanÚcleanerÚmaskÚcollectÚ	collectorN)r   r   ÚsplitÚreplace)r   Ú_comÚ_replaces   &  r   Úsanitize_topic_componentÚ"SoSHelper.sanitize_topic_component:   sd   € Ø�y‰y�‰×$Ñ$ SÓ)¨!Õ,ˆà�YØ�IØ�{ð
ˆð
 ÔØ"Ÿi™iŸo™o×5Ñ5°dÀT½NÓKˆD�I‰IŽOñ r   c                ór  € V P                   P                  '       g'   V P                  4        \        P                  ! ^ 4       V P                  4         V P                  4       pX'       d/    \        4       pVP                  V4       VP                  4        R# \        RV P                   P                   R24       R#   \         dF   p\        RT P                   P                   RT 24       \        P                  ! ^4        Rp?L¦Rp?ii ; i  \         d   p\        RT 24        Rp?R# Rp?ii ; i)r   zCould not load help for 'z': NzError loading help: zNo help section found for 'Ú')r   r   Údisplay_self_helpÚsysÚexitr3   Úget_obj_for_topicÚ	ExceptionÚprintÚHelpSectionÚdisplay_helpÚdisplay)r   ÚklassÚerrÚhts   &   r   ÚexecuteÚSoSHelper.executeD   sî   € Ø�y‰y��ˆØ×"Ñ"Ô$Ü�HŠH�QŒKð 	×%Ñ%Ô'ð	Ø×*Ñ*Ó,ˆE÷
 ð4Ü “]�Ø×"Ñ" 2Ô&Ø—
‘
–ô Ð/°·	±	·±Ð/@ÀÐBÖCøô ô 	ÜÐ-¨d¯i©i¯o©oÐ->¸cÀ#ÀÐGÔHÜ�HŠH�Q�K‰Kûð	ûô ô 4ÜÐ,¨S¨EÐ2×3Ò3ûð4ús0   ÁB? Á-+D Â?DÃ
;D
Ä
DÄD6ÄD1Ä1D6c                ó  € RRRRRRRRR	R
RRRRRR/pRpV P                   P                  V9   dZ   \        P                  ! RV P                   P                  ,           4      p\	        W1V P                   P                  ,          4      pV# RV P
                  RV P                  RV P                  RV P                  /pVP                  4        F:  w  rVV P                   P                  P                  V4      '       g   K2  V! 4       p V# 	  V# )z€Based on the help topic we're after, try to smartly decide which
object we need to manipulate in order to get help information.
ÚreportÚ	SoSReportúreport.pluginsr   r+   Ú
SoSCleanerr.   ÚSoSCollectorzcollector.transportsÚRemoteTransportzcollector.clustersÚClusterÚpoliciesÚPolicyÚuploadÚ	SoSUploadNúsos.zreport.plugins.z	policies.zcollector.transports.zcollector.clusters.)r   r   Ú	importlibÚimport_moduleÚgetattrÚ_get_plugin_variantÚ_get_policy_by_nameÚ_get_collect_transportÚ_get_collect_clusterÚitemsÚ
startswith)r   Ú
static_mapr$   ÚmodÚ_helpÚ_secÚvalues   &      r   r:   ÚSoSHelper.get_obj_for_topic\   sþ   € ð
 �kØ˜hØ�|Ø˜Ø"Ð$5Ø  )Ø˜Ø�kð	
ˆ
ð ˆà�9‰9�?‰?˜jÔ(Ü×)Ò)¨&°4·9±9·?±?Õ*BÓCˆCÜ˜#¨$¯)©)¯/©/Õ:Ó;ˆCð ˆ
ð " 4×#;Ñ#;Ø˜T×5Ñ5Ø'¨×)DÑ)DØ% t×'@Ñ'@ð	ˆEð  %Ÿ{™{ž}‘�Ø—9‘9—?‘?×-Ñ-¨d×3Ô3Ù›'�CØØˆ
ñ	  -ð ˆ
r   c                ó†   € ^ RI Hp V P                  P                  P	                  R4      R,          pW!9   d	   W,          # R# )r   )Ú
TRANSPORTSr)   Néÿÿÿÿ)Úsos.collector.sosnoderb   r   r   r/   )r   rb   Ú
_transports   &  r   rW   Ú SoSHelper._get_collect_transport}   s4   € Ý4Ø—Y‘Y—_‘_×*Ñ*¨3Ó/°Õ3ˆ
ØÔ#ØÕ)Ð)Ùr   c                óþ   € ^ RI Hp ^ RIpVP                  VP                  P
                  R4      pV FF  pV^ ,          V P                  P                  P                  R4      R,          8X  g   K=  V^,          u # 	  R# )r   )rJ   NÚclustersr)   rc   )	Úsos.collectorrJ   Úsos.collector.clustersÚ_load_modulesr.   rh   r   r   r/   )r   rJ   Úsosrh   Úclusters   &    r   rX   ÚSoSHelper._get_collect_cluster„   sd   € Ý.Û%Ø×-Ñ-¨c¯m©m×.DÑ.DØ.8ó:ˆãˆGØ�q�z˜TŸY™YŸ_™_×2Ñ2°3Ó7¸Õ;Ö;Ø˜q•zÒ!ñ  ñ r   c                óâ  € \         P                  ! R V P                  P                  ,           4      pV P	                  4        \
        P                  ! V\
        P                  4      pV Uu. uF+  p\        V^,          \        4      '       g   K"  V^,          NK-  	  ppV FF  pVP                  4       '       g   K  V P                  P                  VP                  4       4      pVu # 	  R# u upi )rQ   N)rR   rS   r   r   Úload_local_policyÚinspectÚ
getmembersÚisclassÚ
issubclassr   Ú__subclasses__ÚpolicyÚmatch_plugin)r   r\   ÚmemsÚmÚpluginsÚpluginr$   s   &      r   rU   ÚSoSHelper._get_plugin_variantŽ   s°   € Ü×%Ò% f¨t¯y©y¯©Õ&>Ó?ˆØ×ÑÔ Ü×!Ò! #¤w§¡Ó7ˆÙ!%ÓB¡˜A¬°A°aµD¼&×)A”4�1�Q—4�4¡ˆÐBÛˆFØ×$Ñ$×&Ô&Ø—k‘k×.Ñ.¨v×/DÑ/DÓ/FÓG�Ø’
ñ ñ ùò Cs   Á+C,ÂC,c                ób  € V P                   P                  P                  R 4      R,          p^ RIp\	        VP
                  P                  4      pVP                  4        FK  p\        V4       F9  pVP                  P                  4       P                  RR4      pWa8X  g   K5  Vu u # 	  KM  	  R# )r)   Nrv   r   rc   )r   r   r/   Úsos.policies.distrosr	   rM   ÚdistrosÚget_modulesr   Ú__name__Úlowerr0   )r   Ú_topicrl   Ú_helperr\   rv   Ú_ps   &      r   rV   ÚSoSHelper._get_policy_by_name™   sˆ   € Ø—‘—‘×&Ñ& sÓ+¨BÕ/ˆó 	$Ü  §¡×!5Ñ!5Ó6ˆØ×&Ñ&Ö(ˆCÜ'¨Ö,�Ø—_‘_×*Ñ*Ó,×4Ñ4°X¸rÓB�Ø–<Ø!”Mó -ñ )ñ
 r   c                óö  € \        RR4      pVP                  R\        R4       R24       VP                  R4      p\        R4      pVP                  RV R	24       \        R
4      pVP                  RV R24       VP                  R4      pVP                  R4       RRRRRRRRRRRRRR/pVP	                  4        F'  w  rxVP                  R\        V4      R V 2RR 7       K)  	  VP                  4        R!# )"zXDisplays the help information for this component directly, that is
help for `sos help`.
zDetailed help for sos helpz±The 'help' sub-command is used to provide more detailed information on different sub-commands available to sos as well as different components at play within those sub-commands.zØSoS - officially pronounced "ess-oh-ess" - is a diagnostic and supportability utility used by several Linux distributions as an easy-to-use tool for standardized data collection. The most known component of which is z
sos reportzŽ (formerly sosreport) which is used to collect troubleshooting information into an archive for review by sysadmins or technical support teams.zHow to search using sos helpz$component.$topic.$subtopicz8To get more information on a given topic, use the form 'z'.zsos help report.plugins.kernelzFor example 'zM' will provide more information on the kernel plugin for the report function.zAvailable Help Sectionsz‡The following help sections are available. Additional help topics and subtopics may be displayed within their respective help section.
rF   z#Detailed help on the report commandrH   z'Information on the plugin design of soszreport.plugins.$pluginz!Information on a specific $pluginr*   z"Detailed help on the clean commandr-   z$Detailed help on the collect commandrO   z#Detailed help on the upload commandrM   z+How sos operates on different distributionsÚ	z<36F)ÚnewlineN)r=   Úadd_textr   Úadd_sectionrY   r?   )	r   Ú	self_helpÚsubsectr!   Úrep_exÚ
avail_helpÚsectionsÚsectr_   s	   &        r   r7   ÚSoSHelper.display_self_help¦   sN  € ô  Ø(ðJó
ˆ	ð 	×Ñð&ô '+¨<Ó&8Ð%9ð :JðJô	
ð ×'Ñ'Ð(FÓGˆÜÐ2Ó3ˆØ×ÑðØ��sðô	
ô
 Ð6Ó7ˆØ×Ñ˜=¨¨ð 1%ð %ô 	&ð ×*Ñ*Ð+DÓEˆ
Ø×Ñðô	
ð Ð=ØÐGØ$Ð&IØÐ<ØÐ>ØÐ;ØÐEð
ˆð $Ÿ>™>Ö+‰KˆDØ×Ñ "¤T¨$£Z°Ð$4°U°GÐ <ÀeÐÖLñ ,ð 	×ÑÖr   )r   )r�   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚdescÚconfigure_loggingÚload_policyÚ
load_probeÚarg_defaultsr   Úclassmethodr&   r3   rC   r:   rW   rX   rU   rV   r7   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   Ú__classdict__s   @@r   r   r      sx   ù‡ € ñð &€DØÐØ€KØ€Jð 	�ð€Lõ%ð ñ1ó ð1òLòDò0òBòò	ò÷3ò 3r   r   c                   óX   a € ] tR t^Üt o RtR
R ltR tRR ltRR ltRR lt	R t
RtV tR	# )r=   z}This class is used to build the output displayed by `sos help` in a
standard fashion that provides easy formatting controls.
c                óH   € Wn         W n        W0n        \        4       V n        R# )aK  
:param title:   The title of the output section, will be prominently
                displayed
:type title:    ``str``

:param content: The text content to be displayed with this section
:type content:  ``str``

:param indent:  If the section should be nested, set this to a multiple
                of 4.
:type indent:   ``int``
N)ÚtitleÚcontentÚindentr   r�   ©r   r£   r¤   r¥   s   &&&&r   r   ÚHelpSection.__init__á   s   € ð Œ
ØŒØŒÜ#›ˆŽr   c                ó   € Wn         R# )zSet or override the title for this help section

:param title:   The name to set for this help section
:type title:    ``str``
N)r£   )r   r£   s   &&r   Ú	set_titleÚHelpSection.set_titleó   s	   € ð Ž
r   c                ó„   € V P                   '       d   V'       d   RMRpW1,           pV ;P                   V,          un         R# )zÇAdd body text to this section. If content for this section already
exists, append the new ``content`` after a newline.

:param content:     The text to add to the section
:type content:      ``str``
z

Ú
N)r¤   )r   r¤   r‰   Úlns   &&& r   rŠ   ÚHelpSection.add_textû   s+   € ð �<�<ˆ<ß"‘¨ˆBØ•lˆGØ�Š˜Õ�r   c                óL   € V P                  WV4       V P                  V,          # )a  Add a section of text to the help section that will be displayed
when the HelpSection object is printed.

Sections will be printed *in the order added*.

This will return a subsection object with which block(s) of text may be
added to the subsection associated with ``title``.

:param title:   The title of the subsection being added
:type title:    ``str``

:param content: The text the new section should contain
:type content:  ``str``

:returns:   The newly created subsection for ``title``
:rtype:     ``HelpSection``
)Ú_add_sectionr�   r¦   s   &&&&r   r‹   ÚHelpSection.add_section  s#   € ð$ 	×Ñ˜%¨&Ô1Ø�}‰}˜UÕ#Ð#r   c                ón   € WP                   9   d   \        R4      h\        WV4      V P                   V&   R# )z‘Internal method used to add a new subsection to this help output

:param title:   The title of the subsection being added
:type title:    ``str`
z(A section with that title already existsN)r�   r;   r=   r¦   s   &&&&r   r°   ÚHelpSection._add_section  s/   € ð —M‘MÔ!ÜÐFÓGÐGÜ*¨5¸6ÓBˆ�‰�eÓr   c           	     ó€  € \        \        \        V P                  4      \        V P
                  R7      4       V P                  P                  4        F(  p\        \        V\        V P
                  R7      4       K*  	  V P                   F/  p\        R4       V P                  V,          P                  4        K1  	  R# )zGPrint the HelpSection contents, including any subsections, to
console.
)ÚwidthÚinitial_indentr   N)
r<   r   r   r£   ÚTERMSIZEr¥   r¤   Ú
splitlinesr�   r?   )r   r­   Úsections   &  r   r?   ÚHelpSection.display&  s   € ô 	ŒdÜ�—‘Ó¤H¸T¿[¹[ô
ô 	ð —,‘,×)Ñ)Ö+ˆBÜ”$�r¤¸$¿+¹+ÔFÖGñ ,à—}”}ˆGÜ�"ŒIØ�M‰M˜'Õ"×*Ñ*Ö,ó %r   )r¤   r¥   r�   r£   N)r   r   r   )T)r   r   )r�   r“   r”   r•   r–   r   r©   rŠ   r‹   r°   r?   r�   rž   )r    s   @r   r=   r=   Ü   s.   ø‡ € ñô&ò$ô
 ô$ô*C÷-ð -r   r=   )rq   rR   r8   ÚosÚcollectionsr   Útextwrapr   Úsos.componentr   Úsos.policiesr   Úsos.report.pluginsr   Úsos.utilitiesr   r	   ÚminÚget_terminal_sizeÚcolumnsr·   r;   r   r=   © r   r   Ú<module>rÆ      sw   ðó Û Û 
Û 	å #Ý Ý &Ý &Ý %ß .ðÙ�2×'Ò'Ó)×1Ñ1°3Ó7€Hô
|�ô |÷~U-ó U-øðG ô Ø‚Hðús   ¸"A1 Á1	A=Á<A=