
    =	f3.                         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 d dlm	Z	m
Z
 d dl d dl dZd Zd Zd	 Zd
 ZddZd ZddZy)    N   )*)utilstui)password
validationz+http://hplip.sourceforge.net/hplip_web.confc                 B   d}ddddd}t        j                  dt         j                        t        j                  dt         j                        t        j                  dt         j                        t        j                  dt         j                        d}t        j                  dd	      }|rt        j
                  |d
| dd dd      \  }}|dk(  r|j                         D ]  }|D ]  }||v s|dz  }||   j                  |      r'||   j                  |      j                  d      ||<   nt        j                  d|z         d|k(  r||   j                         dk7  rdi fc c S d|k(  r||   dk(  rdi fc c S  n |t        |      k(  s d	|fS  d	|fS )Nr    )idVendoriProductbNumInterfacesbInterfaceClassz"\s*idVendor\s*([0-9a-fx]{1,})\s*.*z"\s*iProduct\s*[0-9a-fx]{1,}\s*(.*)z!\s*bNumInterfaces\s*(\d{1,})\s*.*z"\s*bInterfaceClass\s*(\d{1,})\s*.*lsusbTz -d z -vF)passwordObjpswd_msg
log_outputr   z:TBD... Shouldn't have entered into this condition. key[%s]r   0x03f0r   )recompileIr   whichrun
splitlinesmatchgrouplogwarnlowerlen)	vid_pid
result_cntparam_resultparam_search	lsusb_cmdstsoutlss	            &/usr/share/hplip/base/smart_install.pyget_usb_detailsr*   -   s   J!bBZ\]L "

+TVXVZVZ [!#,UWYW[W[!\')zz2Z\^\`\`'a(*

3\^`^b^b(cgL
 GD)I))9g>d]_lqrC!8^^% % AAv"a
'?003.:1o.C.CA.F.L.LQ.OLOHH%abc%cd%!+Q0E0E0G80S#("9,'1_aB1F#("9, \!22'&     c            
         g } t        j                  dd      }|st        j                  d       | S 	 t        j                  |      \  }}|dk7  rt        j                  d|z         | S |j                         D ]  }t        j                  dt        j                        }|j                  |      r|j                  |      j                  d      }t        |      \  }}|sit        j                  d|d	   d
|d   d|d   d       |d   dk(  s|d   dk(  sd|d	   j                         v s| j                  |d	          t        j                  d|z          	 | rt        j"                  |       } | S # t         $ r Y $w xY w)Nr   Tz Failed to find the lsusb commandr   zFailed to run the %s commandz .*([0-9a-f]{4}:([0-9a-f]{4}))\s*r   z	Product['r   z'],Interfaces[r   z],InterfaceClass[r   ]18laserjetz-Failed to find vid and pid for USB device[%s])r   r   r   errorr   r   r   r   r   r   r   r*   debugr   appendr   KeyError
uniqueList)	smartinstall_dev_listr$   r%   r&   dusb_dev_patr    bsts
usb_paramss	            r)    get_smartinstall_enabled_devicesr;   U   s   GD)I		45$$))I&C19II4Y>?((! 	LA**%LbddSK  #%++A.44Q7#27#; j		ZXbMceo  qA  fB  CM  N_  C`  a  b./36:FW;X\_;_dnr|  ~H  sI  sO  sO  sQ  eQ)00J1GH HJK	L(  % 0 01F G    s*   6E< *B)E< E< E< 3/E< <	FFc                      t               } | ryy)NTF)r;   )devicess    r)   check_SmartInstallr>   }   s    .0Gr+   c                  t   d\  } }t        j                         st        j                  d       | |fS t        j                  t
              \  }}|dk(  rFt        |      }|j                  ddd      } | rd}| |fS t        j                  dt
        z         | |fS t        j                  dt
        z         | |fS )	N)r
   r
   Internet connection not found.r   SMART_INSTALL	referencer
   zSmartInstallDisable-Tool.runFailed to download %s.)r   check_network_connectionr   r1   download_from_networkHPLIP_INFO_SITE
ConfigBaseget)url	file_namer%   
HPLIP_filehplip_si_confs        r)   get_SmartInstall_tool_inforM      s    NC))+		23 	>  55oFZ!8&z2M##OKCC:	 	>	 		2?BC 	> II.>?	>r+   c                 .   t        j                  t        |d      j                               }t        j                  d|z         |r ||k7  rt        t        t        dt              fS t        j                         }|j                  ||      \  }}||||fS )NrzFile checksum=%sr   )r   get_checksumopenreadr   r2   ERROR_FILE_CHECKSUMqueryStringERROR_CHECKSUM_ERRORplugin_filer   GPG_Verificationvalidate)modesmart_install_runsmart_install_ascreq_checksumcalc_checksumgpg_obj
digsig_sts	error_strs           r)   rX   rX      s     &&t,=s'C'H'H'JKMII =015"K0Da$UUU ))+G#,,->@QRJ	(*;YFFr+   c           	         t        j                         s,t        j                  d       t        ddt        t              fS t        j                  t              \  }}|dk(  rYt        |      }|j                  ddd      }|s9t        j                  dt        z         t        ddt        t        dt              fS t        j                        \  }}|r1t        j                  d|z         t        ddt        t        d|      fS t        j                  |dz         \  }}|r7t        j                  d|dz   z         t        ddt        t        d|dz         fS t        | ||      \  }}}}	||||	fS )Nr@   r
   r   rA   rI   rC   z.asc)r   rD   r   r1   ERROR_NO_NETWORKrT   rE   rF   rG   rH   ERROR_FAILED_TO_DOWNLOAD_FILErX   )
rY   r   r%   rK   rL   sourcerZ   r[   r_   r`   s
             r)   downloadre      sa   ))+		23b+6F*GGG  55oFZ!8&z2M"&&uR@F		2?BC4b2{Khjkm|?}}}!&!<!<V!DII.v560"r;Gdfgio;ppp!&!<!<VF]!KII.v>?0"r;Gdfgiorxix;yyyFNtUfhyFzC
%'8),.?JJr+   c                    t               }|s*t        j                  d       t        t	        t              fS t
        }t	        t
              }t               \  }}	t        j                  |      }
	 | t        k(  r|dk(  r	 ddl
m}  |d|
d|d       n)t        j                         s1t        j                  d	t        z         t
        t	        t
              fS |r|r|j!                  |
d
t"               n'	 |dk(  rddlm} n|dk(  rddlm}  d |
d
t"              }t        j                  d       |j+                          t-               r|j/                  d|z         n\|j1                  d       nIt        j                  d|
z         t3        j4                  dddgd      \  }}|r|dk7  rt
        }t	        t
              }nt7        | |      \  }}}}d}|}|t8        k(  rd}nN|t:        t<        fv r5t3        j>                  d      \  }}|r|stA        jB                  d       nd}nt	        |      }|rt        jD                  d|z        \  }}|s
t-               rCt        j                  d       t        j                  d|z         t
        }t	        t
              }nt        jG                  d       t8        }d
}||fS # t        $ r t        j                  d|
d|d       Y +w xY w# t        $ r t        j                  d       Y w xY w# tH        $ r0 t        j                  d       tA        jB                  d       Y ||fS w xY w)NzNo Smart Install Device foundqt3r   )FailureMessageUIzSmart Install is enabled in zT device(s).

Auto Smart Install disable is not supported in QT3.
Please refer link 'z' to disable manuallyzS device(s).
Auto Smart Install disable is not supported in QT3.
Please refer link 'z+%s requires GUI support . Is Qt4 installed?r
   qt4)QueuesDiagnoseqt5z0Unable to load Qt4/Qt5 support. Is it installed?zStarting GUI loop...zLFailed to disable smart install.
Please refer link '%s' for more informationz$Smart install disabled successfully.z*Smart Install is enabled in %s device(s). zADo you want to download and disable smart install?(y=yes*, n=no):ynFTz:Digital Sign verification failed, Do you want to continue?zsh %sz!Failed to disable smart install .z*Please refer link '%s' to disable manuallyz	User exit)%r;   r   r2   ERROR_NO_SI_DEVICErT   ERROR_FAILED_TO_DISABLE_SIrM   r   list_to_stringGUI_MODEui.setupformrh   ImportErrorr1   canEnterGUIMode4__mod__initQUEUES_SMART_INSTALL_ENABLEDui4.queuesconfrj   ui5.queuesconfexec_r>   showMessageshowSuccessMessager   enter_choicere   ERROR_SUCCESSERROR_UNABLE_TO_RECV_KEYSERROR_DIGITAL_SIGN_NOT_FOUNDenter_yes_nosysexitr   infoKeyboardInterrupt)rY   
ui_toolkitdialogappr   dev_list
return_valreturn_error_strrI   rJ   printer_namesrh   rj   responsevaluer%   rZ   r[   r`   
disable_sir&   s                        r)   disabler      s   /1H		12!;/A#BBB+J"#=>/1NC))(3MP8U"K= %  xE  FI  &J  K --/IIKgUV5{C]7^^^cKKr3OPf%.E'50E "0mRHd!e		01%'&&'xz}'}~--.TU
 IIB=PQ!../rtwy|s}  @C  DOHeu|7
#./I#J  HPPTVaGbD&(99"
 
-'!%J68TUU&)&6&67s&tOHe#5%)
'23'7$$yy1B)BCHC 02		"EF		"PQT"TU%?
+67Q+R(!GH%2
+-( '''[ # BII  o|  }@  A  BB$ ' V		"TUVn  		+'''	sb   /L >K AL L 7K- F0L %K*'L )K**L -LL LL 3M
M)r
   )ri   NNN)r   os.pathosr   gr
   r   r   baser   r   
base.codesbase.stringsrF   r*   r;   r>   rM   rX   re   r    r+   r)   <module>r      sS   0   	 	   %   ?P%!P$G"K:^(r+   