Ë
    i©¹dS  ã                   óD  — d Z 	 ddlZ G d„ de«      Z G d„ de«      Z G d„ de«      Zd	„ Z G d
„ de«      Z	 G d„ de«      Z
 G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zd„ Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy# e$ r ddlZY Œ–w xY w)zR This provides a restricted tag language to define the sosreport
    index/report
é    Nc                   ó   — e Zd Zd„ Zd„ Zy)ÚNodec                 ó@   — t        j                  | j                  «      S ©N)ÚjsonÚdumpsÚdata©Úselfs    ú6/usr/lib/python3/dist-packages/sos/report/reporting.pyÚ__str__zNode.__str__   s   € Ü�z‰z˜$Ÿ)™)Ó$Ð$ó    c                  ó   — y)NF© ©r   Únodes     r   Úcan_addzNode.can_add   s   € Ør   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s   „ ò%ór   r   c                   ó   — e Zd ZdZy)ÚLeafz0Marker class that can be added to a Section nodeN)r   r   r   Ú__doc__r   r   r   r   r      s   „ Ù:Ør   r   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚReportz?The root element of a report. This is a container for sections.c                 ó   — i | _         y r   )r	   r
   s    r   Ú__init__zReport.__init__'   s	   € Øˆ�	r   c                 ó"   — t        |t        «      S r   )Ú
isinstanceÚSectionr   s     r   r   zReport.can_add*   s   € Ü˜$¤Ó(Ð(r   c                 ó|   — |D ]7  }| j                  |«      sŒ|j                  | j                  |j                  <   Œ9 y r   )r   r	   Úname©r   Únodesr   s      r   Úaddz
Report.add-   s3   € Øò 	1ˆDØ�|‰|˜DÕ!Ø'+§y¡y�—	‘	˜$Ÿ)™)Ò$ñ	1r   N©r   r   r   r   r   r   r%   r   r   r   r   r   $   s   „ ÙIòò)ó1r   r   c                 óJ   — t        | t        «      r| S | j                  dd«      S )z3returns a string text for a given unicode/str inputÚutf8Úignore©r   ÚstrÚdecode)Úss    r   Ú_decoder.   3   s!   € ä˜AœsÔ#ˆAÐD¨¯©°&¸(Ó)CÐDr   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)r    zeA section is a container for leaf elements. Sections may be nested
    inside of Report objects only.c                 ó2   — t        |«      | _        i | _        y r   )r.   r"   r	   )r   r"   s     r   r   zSection.__init__<   s   € Ü˜D“MˆŒ	Øˆ�	r   c                 ó"   — t        |t        «      S r   )r   r   r   s     r   r   zSection.can_add@   s   € Ü˜$¤Ó%Ð%r   c                 ó´   — |D ]S  }| j                  |«      sŒ| j                  j                  |j                  g «      j	                  |j                  «       ŒU y r   )r   r	   Ú
setdefaultÚADDS_TOÚappendr#   s      r   r%   zSection.addC   sF   € Øò 	IˆDØ�|‰|˜DÕ!Ø—	‘	×$Ñ$ T§\¡\°2Ó6×=Ñ=¸d¿i¹iÕHñ	Ir   Nr&   r   r   r   r    r    8   s   „ ñ&òò&óIr   r    c                   ó   — e Zd ZdZd„ Zy)ÚCommandÚcommandsc                 ó>   — t        |«      |t        |«      dœ| _        y )N)r"   Úreturn_codeÚhref©r.   r	   )r   r"   r:   r;   s       r   r   zCommand.__init__M   s   € Ü$ T›]Ø$/Ü$ T›]ñ,ˆ�	r   N©r   r   r   r4   r   r   r   r   r7   r7   I   s   „ à€Gó,r   r7   c                   ó   — e Zd ZdZd„ Zy)Ú
CopiedFileÚcopied_filesc                 ó<   — t        |«      t        |«      dœ| _        y ©N)r"   r;   r<   ©r   r"   r;   s      r   r   zCopiedFile.__init__W   ó   € Ü$ T›]Ü$ T›]ñ,ˆ�	r   Nr=   r   r   r   r?   r?   S   s   „ à€Gó,r   r?   c                   ó   — e Zd ZdZd„ Zy)ÚCreatedFileÚcreated_filesc                 ó<   — t        |«      t        |«      dœ| _        y rB   r<   rC   s      r   r   zCreatedFile.__init__`   rD   r   Nr=   r   r   r   rF   rF   \   s   „ à€Gó,r   rF   c                   ó   — e Zd ZdZd„ Zy)ÚAlertÚalertsc                 ó$   — t        |«      | _        y r   r<   ©r   Úcontents     r   r   zAlert.__init__i   ó   € Ü˜GÓ$ˆ�	r   Nr=   r   r   r   rJ   rJ   e   s   „ à€Gó%r   rJ   c                   ó   — e Zd ZdZd„ Zy)ÚNoteÚnotesc                 ó$   — t        |«      | _        y r   r<   rM   s     r   r   zNote.__init__q   rO   r   Nr=   r   r   r   rQ   rQ   m   s   „ à€Gó%r   rQ   c                 ó$   — | j                  d«      S )a   Return True if 'string' ends with a backslash, and False otherwise.

        Define this as a named function for no other reason than that pep8
        now forbids binding of a lambda expression to a name:

        'E731 do not assign a lambda expression, use a def'
    ú\)Úendswith)Ústrings    r   Úends_bsrX   u   s   € ð �?‰?˜4Ó Ð r   c                   óŒ   — e Zd ZdZdZdZdZdZdZdZ	dZ
dZd	ZdZd
ZdZeeddfeeddfeeddfeeddfeeddffZg Zd„ Zd„ Zd„ Zy)ÚPlainTextReportz@Will generate a plain text report from a top_level Report objectÚ z  * %(name)sz  ! %sz  * %szLoaded Plugins:z  {name}ú
é   z{name}zH========================================================================z-  commands executed:z-  files copied:z-  files created:z
-  alerts:z	-  notes:c                 ó^   — t        t        j                  |j                  «      «      | _        y r   )ÚsortedÚdictÚitemsr	   Úreport_data)r   Úreport_nodes     r   r   zPlainTextReport.__init__š   s   € Ü!¤$§*¡*¨[×-=Ñ-=Ó">Ó?ˆÕr   c           	      ó¢  — g x| _         }t        | j                  «      dkD  r|j                  | j                  «       |j                  | j                  «       d}d}t        | j
                  «      }| j
                  D ]Q  \  }}|| j                  j                  |¬«      z  }|dz  }|| j                  z  dk(  sŒ=||k  sŒC|| j                  z  }ŒS || j                  z  }|j                  |«       | j
                  D ]€  \  }}|j                  | j                  «       |j                  | j                  j                  |¬«      «       | j                  D ]&  \  }}	}
}| j                  ||j                  |
|	|«       Œ( Œ‚ t        | j                   «      dkD  r|j                  | j                   «       dj#                  t%        d„ |«      «      }|S )Nr   r[   )r"   é   r\   c                 óJ   — t        | t        «      r| S | j                  dd«      S )Nr(   r)   r*   )Úis    r   ú<lambda>z)PlainTextReport.unicode.<locals>.<lambda>º   s"   € ´
¸1¼cÔ0B¨1€ Ø01·±¸ÀÓ0Jð r   )Úline_bufÚlenÚHEADERr5   ÚPLUGLISTHEADERrb   ÚPLUGLISTITEMÚformatÚPLUGLISTMAXITEMSÚPLUGLISTSEPÚPLUGLISTFOOTERÚPLUGDIVIDERÚPLUGINFORMATÚsubsectionsÚprocess_subsectionr4   ÚFOOTERÚjoinÚmap)r   ri   Úlinerg   Ú	plugcountÚsection_nameÚ_Úsection_contentsÚtype_Úformat_ÚheaderÚfooterÚoutputs                r   ÚunicodezPlainTextReport.unicode�   sº  € Ø#%Ð%ˆŒ˜ä�—‘Ó˜qÒ Ø�O‰O˜DŸK™KÔ(ð 	�‰˜×+Ñ+Ô,ØˆØˆÜ˜×(Ñ(Ó)ˆ	Ø#×/Ñ/ò 	)‰OˆL˜!Ø�D×%Ñ%×,Ñ,°,Ð,Ó?Ñ?ˆDØ�‰FˆAØ�D×)Ñ)Ñ)¨QÓ.°Q¸³]Ø˜×(Ñ(Ñ(‘ð		)ð
 	�×#Ñ#Ñ#ˆØ�‰˜Ôà.2×.>Ñ.>ò 	AÑ*ˆLÐ*Ø�O‰O˜D×,Ñ,Ô-Ø�O‰O˜D×-Ñ-×4Ñ4¸,Ð4ÓGÔHØ26×2BÑ2Bò AÑ.��w ¨Ø×'Ñ'Ð(8¸%¿-¹-Ø(.°¸õAñAð	Aô �—‘Ó˜qÒ Ø�O‰O˜DŸK™KÔ(à—‘œCñ !Là (ó*ó +ˆð ˆr   c                 ó  — ||v r†| j                   j                  |«       t        |j                  |«      d„ ¬«      D ]   }| j                   j                  ||z  «       Œ" t	        |«      dkD  r| j                   j                  |«       y y y )Nc                 ó0   — t        | t        «      r| d   S dS )Nr"   r[   )r   r`   )Úxs    r   rh   z4PlainTextReport.process_subsection.<locals>.<lambda>Ä   s   € ¬z¸!¼TÔ/B ! F¡)€ È€ r   )Úkeyr   )ri   r5   r_   Úgetrj   )r   Úsectionr‡   r€   r   r�   Úitems          r   ru   z"PlainTextReport.process_subsection¿   s   € Ø�'‰>Ø�M‰M× Ñ  Ô(ÜØ—K‘K Ó$ÙJôò 5�ð —‘×$Ñ$ W¨t¡^Õ4ð	5ô
 �F“˜a’Ø—‘×$Ñ$ VÕ,ð  ð r   N)r   r   r   r   rk   rv   ÚLEAFÚALERTÚNOTErl   rm   rp   ro   rq   rs   rr   r7   r?   rF   rJ   rQ   rt   ri   r   rƒ   ru   r   r   r   rZ   rZ   €   s¢   „ ÙJà€FØ€FØ€DØ€EØ€DØ&€NØ€LØ€KØÐØ€NØ€LØ€Kð 
�$Ð4°bÐ9Ø	�TÐ/°bÐ9Ø	�dÐ0°bÐ9Ø	�˜\°bÐ9Ø	ˆt˜[°bÐ9ð€Kð €Hò@ò óD	-r   rZ   c                   óv   — e Zd ZdZdZdZdZdZdZdZ	dZ
dZd	Zd
ZdZdZeeddfeeddfeeddfeeddfeeddffZy)Ú
HTMLReportz:Will generate a HTML report from a top_level Report objectaÿ  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
        <head>
            <meta http-equiv="Content-Type" content="text/html;
                  charset=utf-8" />
            <title>Sos System Report</title>
            <style type="text/css">
                td {
                    padding: 0 5px;
                   }
            </style>
        </head>
        <body>
z</body></html>z(<li><a href="%(href)s">%(name)s</a></li>z<li>%s</li>z#<h3>Loaded Plugins:</h3><table><tr>z&<td><a href="#{name}">{name}</a></td>
z
</tr>
<tr>r]   z</tr></table>z+<h2 id="{name}">Plugin <em>{name}</em></h2>z<hr/>
z<p>Commands executed:</p><ul>z</ul>z<p>Files copied:</p><ul>z<p>Files created:</p><ul>z<p>Alerts:</p><ul>z<p>Notes:</p><ul>N)r   r   r   r   rk   rv   r‹   rŒ   r�   rl   rm   rp   ro   rq   rs   rr   r7   r?   rF   rJ   rQ   rt   r   r   r   r�   r�   Ë   s�   „ ÙDð€Fð €FØ5€DØ€EØ€DØ:€NØ<€LØ€KØÐØ$€NØ@€LØ€Kð 
�$Ð<¸gÐFØ	�TÐ7¸gÐFØ	�dÐ8¸gÐFØ	�Ð1¸gÐFØ	ˆtÐ0¸gÐFð�Kr   r�   c                   ó   — e Zd ZdZd„ Zy)Ú
JSONReportz:Will generate a JSON report from a top_level Report objectc                 óJ   — t        j                  | j                  dd¬«      }|S )Né   F)ÚindentÚensure_ascii)r   r   rb   )r   r‚   s     r   rƒ   zJSONReport.unicodeô   s   € Ü—‘˜D×,Ñ,°QÀUÔKˆØˆr   N)r   r   r   r   rƒ   r   r   r   r‘   r‘   ñ   s
   „ ÙDór   r‘   )r   r   ÚImportErrorÚ
simplejsonÚobjectr   r   r   r.   r    r7   r?   rF   rJ   rQ   rX   rZ   r�   r‘   r   r   r   ú<module>r™      sÈ   ðñðÛô
ˆ6ô ô	ˆ4ô 	ô
1ˆTô 1òEô
Iˆdô Iô",ˆdô ,ô,�ô ,ô,�$ô ,ô%ˆDô %ô%ˆ4ô %ò!ôH-�fô H-ôV#�ô #ôL�õ øð ò Ýðús   „B Â	BÂB