
    =	f0              
          d dl mZ dZdZdZdZd dlZd dlZd dlZd dl	Z	d dl
Z
d dl d dlmZmZmZmZ d d	lmZ d d
lmZmZ d dl dZdZdZdZeez   ZdZdZi Zd Zd Z d Z!dqdZ"d Z#edddfdez  dddfdez  dddfddejH                  ejJ                  ejL                  ejN                  ejP                  g
Z)	  ejT                  eeeee)e+fdd      Z,e,j[                  dg dd !      \  Z.Z/Z0Z1Z2Z3 ejr                  d"      re6ju                  d#       e.D ]  \  Z;Z<e;d$v r e"        e;d%k(  r	 e"d&        e;d'k(  r	 e"d(       .e;d)k(  r e=ed*+        e>d d        Ge;d,v r8e<j                         j                         ZAe6ju                  eA      r{ e"        e;d-v re6ju                  d#       e;d.k(  se<Z  ej                         d k7  r"e6jo                  d/        ej                          es_ ed0ge1      ZD eeDj                         d          ZFeFreFj                  d*      d    Zes#e6jo                  d2        ej                  d3       ej                  j                  e      sd4Zd5ez  ZJe6j                  d6eJz          ej                  eJ      \  ZMZNeMd k7  r&e6jo                  d7ez          ej                  d3        ej                  d8ez        \  ZMZNeMd k7  re6jo                  d9ez         d:ez   d;z   ee<   d<ed=<   eD ]  ZO ej                  d>ed?eO      \  ZMZNeMd k7  r&e6jo                  d7ez          ej                  d3        ej                  d@ed?eO      \  ZMZNeMd k7  sje6jo                  dAed?eOdB         e          e       si ej                  dCg dDdE      \  ZQZReQreRdFk(  r* e!        e6j                  dG        ej                  d3       eQreRdEk(  r e#dH        e#dI        e#dJ       	 e
j                  j                  e
j                  j                         dK      ZVe6j                  e6j                  dL              ej                  dMdEdFgdE      \  ZQZReQreRdEk(  rn2eQreRdFk(  r* e!        e6j                  dG        ej                  d3        ej                  dN      \  ZMZNeMd k7  re6jo                  dO       e6j                  dPez          e       sej                  j                  dH      r1 ej                  dQez        \  ZMZNeMd k7  re6jo                  dRdHz         ej                  j                  dI      r1 ej                  dSez        \  ZMZNeMd k7  re6jo                  dRdIz         ej                  j                  dJ      r ej                  dTez        \  ZMZNeMd k7  re6jo                  dRdJz         ne6j                  dU       dVeVz  ZJ ej                  eJdWez  z         ZMeMd k7  re6jo                  dX       e6j                  dY       dZeVz  ZJ ej                  eJd[ez  z         ZMeMd k7  re6jo                  d\       eD ]!  ZO ej                  d]eeO   d^ed?eOd_      ZM#  ej                  d`ez        \  ZMZNeMd k7  re6jo                  dadbz         dcez  ZJ ej                  eJ      ZMeMd k7  re6jo                  d9ez         ddedeeZJe6j                  dfeJz          ej                  eJ      \  Z[ZNe[d k7  re6jo                  dgez         ne6j                  dhez          ej                  diez        \  ZMZNeMd k7  re6jo                  djez         e6j                  dk        ej                  dlez        \  ZMZNeMd k7  re6jo                  dmez          e!        e6j                  d       e6j                  d       e[d k(  rWe6j                  e6j                  dn ej                         d?edo             e6j                  e6j                  dp             n5e6j                  e6j                  dn ej                         d?e             e6j                  d       y# ejh                  $ r-Z5e6jo                  e5jp                          e"        Y dZ5[5dZ5[5ww xY w)r    )print_functionz1.0zHPLIP logs capture Utilityzhp-logcapturezCaptures the HPLIP log files.N)*)utilstuimoduleos_utils)to_string_utf8)PopenPIPEz/etc/cups/cupsd.confz/etc/cups/cupsd.conf_orginalz./hplip_troubleshoot_logsz/var/spool/cups/tmp c                      t        t        t              } | j                          | j                  }| j
                  }|dk(  r	|dk\  rd}|S d}|S )Nfedoraz 21TF)CoreInstallMODE_INSTALLERINTERACTIVE_MODE
get_distrodistro_namedistro_version)corer   
distro_verjournals       /usr/share/hplip/logcapture.py
is_journalr   3   sV    (89DOO""K$$Jh:#5 N N    c                     d} dt         dt        }t        j                  d|z         t	        j
                  |      \  }}|dk7  rt        j                  dt         z         dt         z  }t        j                  d|z         t	        j
                  |      \  }}|dk(  rhd	t         z  }t        j                  d
|z         t        j                  |      }|dk7  rt        j                  dt         z         d }t	        j                  d      r7t        j                  j                  t	        j                  d      d      dz   }nt	        j                  d      r>t        j                  j                  t	        j                  d      d      dt        z  z   }n7t        j                  j                  d      rd}nt        j                  d       |r7t        j                  d|z         t	        j
                  |      \  }}|dk(  rd} | S )NFcp -f  zBackup CUPS conf file. cmd =%sr   z Failed to take back cups file=%szgrep 'LogLevel warn' %szcmd= %sz;sed -i 's/LogLevel.*warn/LogLevel debughpLogLevel 15/' %s z%Changing 'Log level' to debug. cmd=%sz-Failed to update Loglevel to Debug in cups=%sservice cups restart	systemctl restart %s.service/etc/init.d/cups/etc/init.d/cups restart:service command not found.. Please restart cups manually..CUPS restart cmd = %sT)	CUPS_FILECUPS_BACKUP_FILElogdebugr   runerrorossystemwhichpathjoinservice_nameexistsresultcmdstsouts       r   
enable_logr9   A   s   F !12CII.s23IIcNGC
ax		4Y>? 	")+CIIy}IIcNGC
axLYV		9#=>YYs^!899DYNO;;y!ekk)4i@P3[[%ekk+6DEZ[gEgg3WW^^./+399QR99,S01YYs^73sQhvMr   c                     d} dt         dt        }t        j                  d|z         t	        j
                  |      \  }}|dk(  r[dt         z  }t        j                  d|z         t	        j
                  |      \  }}|dk7  r9t        j                  dt         z         nt        j                  d	t        z         t        j                  d
       d }t	        j                  d      r7t        j                  j                  t	        j                  d      d      dz   }nt	        j                  d      r>t        j                  j                  t	        j                  d      d      dt        z  z   }n7t        j                  j                  d      rd}nt        j                  d       |r7t        j                  d|z         t	        j
                  |      \  }}|dk(  rd} | S )NFr   r   z Restoring CUPS conf file. cmd=%sr   zrm -f %sz Removing Temporary file.. cmd=%sz-Failed to remove the Temporary backup file=%sz'Failed to restore cups config file = %szRestarting CUPS servicer   r    r!   r"   r#   r$   r%   r&   T)r(   r'   r)   r*   r   r+   warnr,   r/   r-   r0   r1   r2   r3   r4   s       r   restore_loglevelsr<   i   sd   F'	2CII045yy~HC
ax&&s
yy3C783ws3
(HHDEUUV
yy:9DEII'(C{{9WW\\%++i0)<_Ls	[	!WW\\%++k2K@AVWcAccs	*	+'s
yyMN
		)#-.))C.C!86Mr   c                     | dk(  rt        j                  t        t               t        j                  t
        | t        t        t               t        j                  d       y )Ntextr   )	r   	log_title	__title____version__format_textUSAGE__mod__sysexit)typs    r   usagerH      s8    
f}	;/	eS)WkBHHQKr   c                 r   t         j                  j                  |       rd}t         j                  j                  d| |fz        s$t         j                  j                  d| |fz        rO|dz  }t         j                  j                  d| |fz        r*t         j                  j                  d| |fz        rOt        j                  d| | |fz        \  }}|dk7  rt
        j                  d| z         y d| z  }t        j                  |      }|dk7  rt
        j                  d| z         t        j                  d	      rZt        j                  d
| |fz        \  }}|dk7  rt
        j                  d| | |fz         y t
        j                  d| | |fz         y t
        j                  d| | |fz         y y )N   z%s.%dz%s.%d.gzzcp %s %s.%dr   zFailed to archive %s log filezcat /dev/null > %szFailed to clear the %s log filegzipz
gzip %s.%dz$Existing %s log file copied to %s.%dz'Existing %s log file copied to %s.%d.gz)r-   r0   r3   r   r+   r)   r,   r   executer;   r/   info)strLogiArchr7   r8   r6   s        r   backup_clearLogrP      sv   	ww~~fggnnWfe_45
TZ\aSbHb9cAIE ggnnWfe_45
TZ\aSbHb9c))M665*AABC!8II5f<=&/C""3'Cax:6AB{{6"))\65/%ABC!8HHCVVUZD[[\HHFPVX]G^^_?QV@WWX' r   nameTz-Usage: [su -c /sudo] %s [USER INFO] [OPTIONS]summaryze.g. su -c '%s')z[USER INFO]r   headingF)z)User name for which logs to be collected:z--user=<username> optionF)run_as_root_okquietzhl:g:r)helpz	help-restzhelp-manz	help-desczlogging=r*   zuser=F)handle_device_printerHPLIP_DEBUGr*   )z-hz--helpz--help-restrestz
--help-manmanz--help-descr   )end)z-lz	--logging)z-gz--debugz--userzIlogCapture needs root permissions since cups service restart requires....who)stdoutzAFailed to get the user name. Try again by passing '--user' optionrJ   z/tmpzmkdir -p %sz"Creating temporary logs folder =%sz'Failed to create directory =%s. Exitingzchmod 755  %sz$Failed to change permissions for %s.z/home/z/.hplipz/root/.hpliprootz	mkdir -p /zchmod 755  z!Failed to change permissions for .zVArchiving system logs (i.e. syslog, message, error_log). Press (y=yes*, n=no, q=quit):)ynqrb   rd   z	User exitz/var/log/syslogz/var/log/messagesz/var/log/cups/error_logz%Y-%m-%d %H:%M:%SzT
Please perform the tasks (Print, scan, fax) for which you need to collect the logs.z1Are you done with tasks?. Press (y=yes*, q=quit):zhp-checkzFailed to run hp-check commandz$Copying logs to Temporary folder =%sz#cp -f /var/log/syslog %s/syslog.logzFailed to capture %s log file.z'cp -f /var/log/messages %s/messages.logz3cp -f /var/log/cups/error_log %s/cups_error_log.logz(Collecting cups logs from system journalz+journalctl -u cups.service -e --since '%s' z> %s/cups_error.logz#Failed to capture logs from journalz'Collecting messages from system journalzjournalctl --since '%s' z> %s/messages.logz'Failed to capture messages from journalr   z/*.log  z 2>/devnull zmv -f ./hp-check.log %szFailed to capture %s log files.z./hp-check.logzchmod 666  %s/*.logz	tar -zcf z.tar.gz zCompressing logs. cmd =%szFailed to compress %s folder.z$Changing Permissions of ./%s.tar.gz zchmod 666 -R ./%s.tar.gzz+Failed to change permissions for %s.tar.gz.zRemoving Temporary log files..z	rm -rf %sz2Failed to remove temporary files. Remove manually.zLogs are saved as z.tar.gzzXPlease create a bug @https://bugs.launchpad.net/hplip/+filebug and upload this log file.)r>   )]
__future__r   rA   r@   rD   __doc__r-   rE   getoptglobdatetimebase.gbaser   r   r   r   base.sixextr	   
subprocessr
   r   installer.core_installr'   r(   LOG_FOLDER_PATHLOG_FOLDER_NAME	LOG_FILESTMP_DIR	USER_NAMEUSERSr   r9   r<   rH   rP   USAGE_OPTIONS
USAGE_HELPUSAGE_LOGGING1USAGE_LOGGING2USAGE_LOGGING3rC   Moduler   modparseStdOptsopts
device_uriprinter_namemode
ui_toolkitlocGetoptErrorer)   r,   msggetenv	set_leveloaprint
clean_exitlowerstrip	log_levelgetuidrF   poutcommunicateoutputsplitr0   r3   r6   r*   r+   r7   r8   uenter_choiceok
user_inputr;   strftimenowlog_timerM   boldr.   rL   sts_compressgetcwd r   r   <module>r      s  , &(	

- 	 
     + + & " $
 	/ )
O
+	
		#PBY0 2vt	$
9G
CRTX	Y
G
#By	6	.	]									u33U5I5I	

&--K%%'t4IC *u  MR  S :D*lD*c 299]MM' DAq	
m	f	
l	e	
m	g31U	
!	!GGIOO%	}}Y'G	
	g	
h	/6 299;!IIYZCHHJ%&DD,,.q12FLL%a(			UV	ww~~gGI 		
.s
2 3599S>S!8996y@A388A;
%))OI-
.C!8II4i@A )#I-i f	 KAuyy9Q78HC
ax
yy:9DEsxx{eiiIa89GC
ax		YqIJK  |$C$$%}  M  OR  SMBzs"	jC)*+,12
   ))(*;*;*?*?*ABUVHHHSXXmno#3##$WY\]`XacfgMBz	jC:$  %))J
C!8II./ 		
0
: ;|	ww~~'(%))B9LMC!89957HIJ	ww~~)*%))EiOPC!89957JKL	ww~~/0%))QR[[\C!89957PQRII89
7
AC
"))C/	99
:C
ax		78 II78
$h
.C
"))C-i77
8C
ax		;<	 PA
"))q)AN
OCP %))-i7
8C!8II/1ABCi'hs!8II4i@A  /y9 		
%c
) *599S> S1II-y9:II4_DEeii2ODEGC
ax		?KLII./eiiI-.GC
ax		F	RS    1HHSXX_UVWHHSXXpqrHHSXX_MNO e  IIaee	GGs   ;8b c"b==c