
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
UZ5                 @   s(  d dl mZ d dlZd dlZejdddZeeds<eje_ejZd dl	Z	d dl
Z
d dlmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d dlT ej  Z!ej" Z#dd Z$dd Z%dd Z&dd Z'dd Z(G dd de)Z*G d d! d!Z+G d"d# d#Z,G d$d% d%Z-G d&d' d'Z.G d(d) d)Z/G d*d+ d+Z0G d,d- d-Z1G d.d/ d/Z2G d0d1 d1Z3G d2d3 d3Z4G d4d5 d5Z5G d6d7 d7Z6G d8d9 d9Z7G d:d; d;Z8G d<d= d=Z9d>d? Z:e;d@kr$e:  dS )A    )geteuidNzrhn-client-toolsT)Zfallbackugettext)rhnreghardware)up2dateErrors)up2dateUtils)pkgUtils)
up2dateLog)config)convert_url_from_puny)up2dateAuth)rpclib)idn_puny_to_unicode)sstr)PM_PLUGIN_NAMEPM_PLUGIN_CONF)*c             C   s&   t j| tttd| ttg d S )Nz%s)snackButtonChoiceWindowr   ERRORBACK)screenerrmsg r   /usr/lib/python3.6/tui.pyErrorWindow/   s    r   c             C   s8   t j| tttd| ttg | j  tjd d S )Nz%s   )r   r   r   ZFATAL_ERROROKfinishsysexit)r   r   r   r   r   FatalErrorWindow3   s    r!   c             C   s.   t j| tttd| ttg | j  d S )Nz%s)r   r   r   WARNINGr   r   )r   r   r   r   r   WarningWindow9   s    r#   c             C   s   t j| ttttd tt d tt d tt d tt d tt	 d tt
 d tt d tt d tt d tt ttttgdd}|ttj kr| j  dS dS d S )N
z

F   )widthr   r   )r   r   r   ZCONFIRM_QUITZCONFIRM_QUIT_SUREWHY_REGISTER_SECWHY_REGISTER_SEC_TXTWHY_REGISTER_DLDWHY_REGISTER_DLD_TXTWHY_REGISTER_SUPPWHY_REGISTER_SUPP_TXTWHY_REGISTER_COMPWHY_REGISTER_COMP_TXTZCONFIRM_QUIT_WILLNOTWHY_REGISTER_TIPZCONTINUE_REGISTERINGZREGISTER_LATER2lowerr   )r   buttonr   r   r   ConfirmQuitWindow?   s    
vr2   c             G   s   y|| }W n t jk
rD   t| ttj d   tj d Y n t jk
rp   t| |j	 tj d Y n t j
k
r   tj d }t| |j	d ttj tj tj f   Y n: t jk
r   tj d }t| |j	d t  |Y nX |S )Nr   r   r$   z

)r   CommunicationErrorr   ZHOSTED_CONNECTION_ERRORr
   getServerlURLr   exc_infoZSSLCertificateVerifyFailedErrorr   ZNoBaseChannelErrorr!   ZBASECHANNELERRORr   getArchZgetOSRelease
getVersionZSSLCertificateFileNotFoundZSSL_CERT_FILE_NOT_FOUND_ERRER)r   funcZparamsresultser   r   r   tui_call_wrapperV   s(    
r;   c               @   s   e Zd ZdS )WindowSkipExceptionN)__name__
__module____qualname__r   r   r   r   r<   n   s   r<   c               @   s(   e Zd Zd Zdd Zdd Zdd ZdS )AlreadyRegisteredWindowc       	      C   s<  t j  s|jrt || _|| _tjj }t	j
jtj }|d d d }|d d d }tj| jttdd}tj| jttdfttdfg| _|j| jdddd tj|d d	 |d d
 ttd td d t| jj d td d | d td d | d t d dd}|j|dddd || _d S )Nr   Zusername	system_idr      nextr    )growx      z

zSpacewalk Location: r$   zLogin:z
System ID:)padding)r   r   r   r   )r   Z
registeredtestr<   r   tuir   _snacksizer   Z	xmlrpclibloadsr   ZgetSystemIdGridFormr   SYSTEM_ALREADY_SETUP	ButtonBarYES_CONT	NO_CANCELbbaddTextboxZSYSTEM_ALREADY_REGISTERED_r   	serverURLSYSTEM_ALREADY_REGISTERED_CONTg)	selfr   rJ   rL   ZsystemIdXmlZoldUsernameZoldsystemIdtopleveltbr   r   r   __init__t   s&    

Tz AlreadyRegisteredWindow.__init__c             C   s   d S )Nr   )rZ   r   r   r   saveResults   s    z#AlreadyRegisteredWindow.saveResultsc             C   s6   t jd| j  | jj }| jj|}|dkr2dS |S )Nz
Running %sF12rC   )log	log_debugnamerY   runOncerS   buttonPressed)rZ   resultr1   r   r   r   run   s    
zAlreadyRegisteredWindow.runN)r=   r>   r?   rb   r]   r^   rf   r   r   r   r   r@   q   s   r@   c               @   s0   e Zd Zd Zdd Zdd Zdd Zdd Zd	S )
SatelliteUrlWindowc             C   s  || _ || _d| j_t| jj| _tj| j}|| jkrR|| _tj	| j t
j  tjj }tj|ttdd}t}t}t}tj|d d dt|ddd}	|j|	dddd tjtd}	|j|	dd tjd	d}
tjt|}	|
j|	ddddd
 tjd| _| jj| j |
j| jdddd tjt|}	|
j|	ddddd
 tjd| _| jj|j |
j| jdddd |j|
dd	 tj|tt dftt!dftt"dfg| _#|j| j#ddddd || _$d S )Nr   r      
      )scrollwrap)
anchorLeft rB   )rH   anchorRight(   rC   backcancel)rH   rD   )r   r   r   r   )r   r   r   r   )r   r   r   r   )%r   rJ   alreadyRegisteredr   rW   serverr   makeNiceServerUrlr
   setServerURLcfgsaver   rK   rL   rN   r   ZSATELLITE_URL_WINDOWZSATELLITE_URL_TEXTZSATELLITE_URL_PROMPTZSATELLITE_URL_PROMPT2rU   rT   LabelGridsetFieldEntryurlEntrysetsslEntry	sslCACertrP   NEXTr   CANCELrS   rY   )rZ   r   rJ   fixed_server_urlrL   r[   Zprompt_textZ	url_labelZ	ssl_labellabelgridr   r   r   r]      sT    




zSatelliteUrlWindow.__init__c             C   s   | j j dkrBtj| jttttttgd | j	j
| j  dS | j j d d dkr| jj dkrtj| jttttttgd | j	j
| j dS dS )Nrn   )buttonsr      Zhttpsr   )r}   valuer   r   r   r   r   ZSATELLITE_REQUIREDr   rY   
setCurrentr   ZSSL_REQUIRED)rZ   r   r   r   validateFields   s    z!SatelliteUrlWindow.validateFieldsc             C   s\   | j j }tj|}||kr |}|| j_| jj | j_tj	| tj
| jj  tj  d S )N)r}   r   r   ru   rJ   rW   r   r   r
   rv   ZsetSSLCACertrw   rx   )rZ   ZserverEntryr   r   r   r   r^      s    


zSatelliteUrlWindow.saveResultsc             C   sl   t jd| j  | jj  d}x>|s\| jj }| jj|}|dkrFd}|dkrX| j	 }q P q W | jj
  |S )Nz
Running %sr   r_   rC   )r`   ra   rb   r   refreshrY   rf   rS   rd   r   	popWindow)rZ   validre   r1   r   r   r   rf     s    



zSatelliteUrlWindow.runN)r=   r>   r?   rb   r]   r   r^   rf   r   r   r   r   rg      s
   Arg   c               @   s(   e Zd Zd Zdd Zdd Zdd ZdS )*AlreadyRegisteredSubscriptionManagerWindowc             C   s   t j  s|jrt || _|| _tjj }tj	| jt
tdd}tj| jt
tdft
tdfg| _|j| jdddd tj|d d |d d t
td	 t d	 t d
 dd}|j|dddd || _d S )Nr   rB   rC   r    r   )rD   rE   rF   z

r$   )rH   )r   r   r   r   )r   Zrhsm_registeredrI   r<   r   rJ   r   rK   rL   rN   r   rO   rP   rQ   rR   rS   rT   rU   r"   ZRHSM_SYSTEM_ALREADY_REGISTEREDrX   rY   )rZ   r   rJ   rL   r[   r\   r   r   r   r]     s     

z3AlreadyRegisteredSubscriptionManagerWindow.__init__c             C   s   d S )Nr   )rZ   r   r   r   r^   2  s    z6AlreadyRegisteredSubscriptionManagerWindow.saveResultsc             C   s6   t jd| j  | jj }| jj|}|dkr2dS |S )Nz
Running %sr_   rC   )r`   ra   rb   rY   rc   rS   rd   )rZ   re   r1   r   r   r   rf   5  s    
z.AlreadyRegisteredSubscriptionManagerWindow.runN)r=   r>   r?   rb   r]   r^   rf   r   r   r   r   r     s   r   c               @   s(   e Zd Zd Zdd Zdd Zdd ZdS )ConnectWindowc             C   s   || _ || _tjj }t| jj| _td | _	tj
| j ttdd}t| j d }| j	rf|t| j	 7 }tj|d d |d d t|dd}|j|dddd || _d S )	NZ	httpProxyr   z

r   rE   rF   )rH   )r   r   r   r   )r   rJ   r   rK   rL   r   rW   rt   rw   proxyrN   r   ZCONNECT_WINDOWZCONNECT_WINDOW_TEXTZCONNECT_WINDOW_TEXT2rU   rT   rY   )rZ   r   rJ   rL   r[   textr\   r   r   r   r]   C  s    

zConnectWindow.__init__c          	   C   sP   t jd| j  | jj }| jj  yt| jtj	 W n
   dS | jj
  dS )Nz
Running %srq   rC   )r`   ra   rb   rY   drawr   r   r;   r   ZgetCapsr   )rZ   re   r   r   r   rf   \  s    


zConnectWindow.runc             C   s   d S )Nr   )rZ   r   r   r   r^   q  s    zConnectWindow.saveResultsN)r=   r>   r?   rb   r]   rf   r^   r   r   r   r   r   @  s   r   c               @   s(   e Zd Zd Zdd Zdd Zdd ZdS )StartWindowc             C   s   || _ || _tjj }tj| j ttdd}tt}tj	|d d |d d |dd}|j
|dddd tj| j ttdfttdfttd	fg| _|j
| jdddd
 || _d S )Nr   rB   r   ri      )rH   why_registerrC   rr   )rD   )r   r   r   r   )r   rJ   r   rK   rL   rN   r   ZSTART_REGISTER_WINDOWZSTART_REGISTER_TEXTrU   rT   rP   ZWHY_REGISTERr   r   rS   rY   )rZ   r   rJ   rL   r[   Zstart_register_textr\   r   r   r   r]   w  s    
"

zStartWindow.__init__c             C   s   d S )Nr   )rZ   r   r   r   r^     s    zStartWindow.saveResultsc             C   sX   t jd| j  | jj }| jj|}|dkr2dS |dkrTt| j| j	}|j
  |S |S )Nz
Running %sr_   rC   r   )r`   ra   rb   rY   rc   rS   rd   WhyRegisterWindowr   rJ   rf   )rZ   re   r1   Zwhy_reg_winr   r   r   rf     s    
zStartWindow.runN)r=   r>   r?   rb   r]   r^   rf   r   r   r   r   r   t  s   r   c               @   s    e Zd Zd Zdd Zdd ZdS )r   c             C   s   || _ || _tjj }tj| j ttdd}td t	 d t
 d t d t d t d t d t d t d t }tj|d d |d d t|dd}|j|dddd tj| j ttd	fg| _|j| jdddd
 || _d S )Nr   rB   z

r$   r   ri   r   )rH   rq   )rD   )r   r   r   r   )r   rJ   r   rK   rL   rN   r   ZWHY_REGISTER_WINDOWZWHY_REGISTER_TEXTr'   r(   r)   r*   r+   r,   r-   r.   r/   rU   rT   rP   ZBACK_REGISTERrS   rY   )rZ   r   rJ   rL   r[   Zwhy_register_textr\   r   r   r   r]     s    
F&zWhyRegisterWindow.__init__c             C   s*   t jd| j  | jj }| jj|}|S )Nz
Running %s)r`   ra   rb   rY   rc   rS   rd   )rZ   re   r1   r   r   r   rf     s    
zWhyRegisterWindow.runN)r=   r>   r?   rb   r]   rf   r   r   r   r   r     s   r   c               @   s0   e Zd Zd Zdd Zdd Zdd Zdd Zd	S )

InfoWindowc             C   s  || _ || _d| j_| jj| _tjj }tj|t	t
dd}t| j}| j}|| jkrb|d| 7 }t| }t}t}	tj|d d dt	|ddd}
|j|
dddd tjd	d}tjt	|}
|j|
ddddd
 tjd| _| jj|j |j| jdddd tjt	t}
|j|
ddddd
 ytjddd| _W n& tk
r\   tjddd| _Y nX | jj|j |j| jdddd |j|dd tj|d d t	|	}
|j|
dd	dd tj|t	tdft	tdft	t dfg| _!|j| j!ddddd || _"d S )Nr   r   rh   z (%s)ri   rj   )rk   rl   )rm   rB   )rH   ro   rF   )password)ZhiddenrC   rq   rr   )rH   rD   )r   r   r   r   )r   r   r   r   )r   r   r   r   )#r   rJ   rs   rW   rt   r   rK   rL   rN   r   ZREGISTER_WINDOWr   ZLOGIN_PROMPTZLOGINZ	LOGIN_TIPrU   rT   rz   ry   r{   r|   userNameEntryr~   userNameZPASSWORDpasswordEntry	TypeErrorr   TextboxReflowedrP   r   r   r   rS   rY   )rZ   r   rJ   rL   r[   Zdecoded_serverZurlZlogin_promptZlogin_labelZ	login_tipr   r   r   r   r   r]     sV    






zInfoWindow.__init__c             C   sL  | j j dkrBtj| jttttttgd | j	j
| j  dS | jj dkrtj| jttttttgd | j	j
| j dS y tj| j j | jj | j_W n tjk
r   tj d }tj| jttdttdt|j ttdgd | j	j
| j  dS  tjk
rF   tj d }t| jtd|j  Y nX dS )	Nrn   )r   r   r   ErrorzThe server indicated an error:
r   z?There was an error communicating with the registration server:
)r   r   r   r   r   r   r   ZUSER_REQUIREDr   rY   r   r   ZPASSWORD_REQUIREDr   ZreserveUserrJ   rs   r   ZValidationErrorr   r5   rV   r   r3   r!   )rZ   r:   r   r   r   r   	  s.     8zInfoWindow.validateFieldsc             C   s    | j j | j_| jj | j_d S )N)r   r   rJ   r   r   r   )rZ   r   r   r   r^   %  s    zInfoWindow.saveResultsc             C   sl   t jd| j  | jj  d}x>|s\| jj }| jj|}|dkrFd}|dkrX| j	 }q P q W | jj
  |S )Nz
Running %sr   r_   rC   )r`   ra   rb   r   r   rY   rf   rS   rd   r   r   )rZ   r   re   r1   r   r   r   rf   )  s    



zInfoWindow.runN)r=   r>   r?   rb   r]   r   r^   rf   r   r   r   r   r     s
   @r   c               @   s0   e Zd Zd Zdd Zdd Zdd Zdd Zd	S )
OSReleaseWindowc             C   sx  || _ tj stjd t tj|j|j| _	t
| j	d dk rRtjd t || _tjj | _d| _tj| jttdd}|| _tj| jd d tt| _|j| jdddd	 tt}| j jrtj|d dd
| _ntj|d | _|j| jddddd tjtt| _|j| jdddd	 tj| jd d d| jd d d| _|j| jdd xRt | j	d j! dd dD ]4\}}|| j	d kr|d }| jj"d| | qtW tj| jd d tt#| _$|j| j$dddd	 tt%}| j j&rtj|| jdd
| _&ntj|| j| _&|j| j&ddddd tj'|tt(dftt)dftt*dfg| _+|j| j+dddd | jj,  d S )Nz5Server does not support EUS, skipping OSReleaseWindowchannelsr   z3No available EUS channels, skipping OSReleaseWindowF   r   ri   )rm   )isOn)rH   rm   rB      )r&   rj   c             S   s   | d S )Nr   r   )ar   r   r   <lambda>j  s    z*OSReleaseWindow.__init__.<locals>.<lambda>)keyZreceiving_updatesr   rG   rh   r   rC   rq   rr      )rD   )r   r   r   r   )r   r   r   r   )-rJ   r   Zserver_supports_eusr`   ra   r<   ZgetAvailableChannelsr   r   available_channelslenr   r   rK   rL   ZselectChannelrN   r   ZSELECT_OSRELEASErY   r   Z
OS_VERSIONZostextrT   ZLIMITED_UPDATESlimited_updates_buttonZSingleRadioButtonry   ZMINOR_RELEASEZsublabelZListboxchannelListsorteditemsappendZCHANNEL_PAGE_TIPZtipZALL_UPDATESall_updates_buttonrP   r   r   r   rS   r   )rZ   r   rJ   r[   Zoptiontext1r   r   Zoptiontext2r   r   r   r]   @  sb    

$



zOSReleaseWindow.__init__c             C   sp   t jd| j  | jj  d}xB|dkr`| jj }| jj|}|dkrJd}|dkr\| j	 }q P q W | jj
  |S )Nz
Running %srr   r_   rC   )r`   ra   rb   r   r   rY   rf   rS   rd   r   r   )rZ   r   re   r1   r   r   r   rf     s    




zOSReleaseWindow.runc             C   s   d}d}| j j r&| jj | jd k}tt}|rdtj| j	|tt
| jj  ttttgd}|S | jj sr|rtj| j	|ttttttgd}|S |S d S )NokFZdefault_channel)r   )r   selectedr   currentr   r   ZCONFIRM_OS_RELEASE_SELECTIONr   r   r   ZCONFIRM_OS_WARNINGr   r   r   ZCONFIRM_OS_ALL)rZ   ZmsgboxZlater_releasetitler   r   r   r     s$    


 zOSReleaseWindow.validateFieldsc             C   sz   | j jjdd  | jj rVtjd| jj   | jj | j jd< | jj | j _d| j _	| j	j rv| j	j | j _	d| j _d S )NchannelzSelected Channel %sr   )
rJ   otherpopr   r   r`   ra   r   r   r   )rZ   r   r   r   r^     s    

zOSReleaseWindow.saveResultsN)r=   r>   r?   rb   r]   rf   r   r^   r   r   r   r   r   =  s
   Mr   c               @   s(   e Zd Zd Zdd Zdd Zdd ZdS )HardwareWindowc          	   C   s  || _ || _tjj }tj \}}|d k	rB|| jjd< || jjd< tj	 |_tj
|ttdd}tjdtt}|j|dddd tjdd}tjttd	}	|j|	ddd.dd
 tjd| _|j| jdddd |j|dddd |jrtjttdd| _ntjtt| _|j| jddd/dd tjtt}	|j|	dddd0d tjdd}d}
|
tdttj  d 7 }
tjttd| _|j| jddd1dd tjttj | _|j| jdddd |
td7 }
x.|jD ]$}|d dkr|
|d d 7 }
qW |
td7 }
xb|jD ]X}|d dkrt|d }|
|d 7 }
|j dkr`| jj!|j  n| jj!t| qW |
td7 }
x6|jD ],}|d dkr|
td|d  d 7 }
qW |
td7 }
xT|jD ]J}|d dkr|d  r|
|d  d 7 }
n|d! r|
|d! d 7 }
qW |
td"7 }
x2|jD ](}|d d#kr0|
td$|d%  7 }
q0W tjd&t|
}|j|dd tj|d d' tt"| _#|j| j#dd(d2dd tj$|tt%d)ftt&d*ftt'd+fg| _(|j| j(dd,d3dd- || _)d S )4N	virt_uuid	virt_typer   r   r%   r   )rm   rB   zProfile name:)rH   ro   rp   )r   )rH   rm   rj   )rm   rH   rh   rn   z	Version: z  zCPU model: classZCPUZmodelr$   z
Hostname: ZNETINFOZhostnamezCPU speed: z%d MHzZspeedzIP Address: ZipaddrZip6addrzMemory: ZMEMORYz%s megabytesZramP   ri   r   rC   rq   rr   r   )rH   rD   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )*r   rJ   r   rK   rL   r   Zget_virt_infor   r   ZHardwarerN   r   ZHARDWARE_WINDOWr   ZHARDWARE_WINDOW_DESC1rT   rz   ry   rV   r{   r|   profileEntryincludeHardwareCheckboxZHARDWARE_WINDOW_CHECKBOXhardwareButtonZDESELECTr   r7   ZversionLabelZversionLabel2r   profileNamer~   ZHARDWARE_WINDOW_DESC2ZadditionalHWLabelrP   r   r   r   rS   rY   )rZ   r   rJ   rL   r   r   r[   r   r   r   Zhardware_textZhwZunicode_hostnamer\   r   r   r   r]     s    





zHardwareWindow.__init__c             C   s    | j j | j_| jj | j_d S )N)r   r   rJ   r   r   r   r   )rZ   r   r   r   r^   9  s    zHardwareWindow.saveResultsc             C   s6   t jd| j  | jj }| jj|}|dkr2dS |S )Nz
Running %sr_   rC   )r`   ra   rb   rY   rc   rS   rd   )rZ   re   r1   r   r   r   rf   =  s    
zHardwareWindow.runN)r=   r>   r?   rb   r]   r^   rf   r   r   r   r   r     s   nr   c               @   s0   e Zd Zd Zdd Zdd Zdd Zdd Zd	S )
PackagesWindowc       	      C   s  || _ || _tjj }tj|ttdd}|| _tj	|d d tt
}|j|dddd tjttd| _|j| jddddd tjtt}|j|dddd tj|d d d| _|j| jdd	 |jg krJtj|ttdd| _tjd
d| _| jj| jdd | jj  | j j  d}tjd r2d}tj|d|_| j j  xL|jD ]B}| jjdt|d t|d t|d f t|d dd qRW tj|tt dftt!dftt"dfg| _#|j| j#ddddd d S )Nr   r   r   ri   )rm   )rH   rm   rB      rj   rp   d   ZsupportsExtendedPackageProfile)r6   z%s-%s-%srb   versionrelease)itemr   rC   rq   rr   rh   )rH   rD   )r   r   r   r   )r   r   r   r   )$r   rJ   r   rK   rL   rN   r   ZPACKAGES_WINDOWrY   r   ZPACKAGES_WINDOW_DESC1rT   r   ZPACKAGES_WINDOW_DESC2packagesButtonry   ZPACKAGES_WINDOW_UNCHECKZCheckboxTreepackageListZPACKAGES_WINDOW_PKGLISTpwinScalescaler   r   r   rw   r   ZgetInstalledPackageListr   r   rP   r   r   r   rS   )	rZ   r   rJ   rL   r[   r   r   r6   packager   r   r   r]   I  sJ    







zPackagesWindow.__init__c             C   s4   | j jt|d | d  | jj  | jj  d S )Ng      ?r   )r   r~   intr   r   r   r   )rZ   amounttotalr   r   r   setScale  s    
zPackagesWindow.setScalec             C   sH   | j j | j_| jj }x*| jjD ]}|d |kr"| jjj| q"W d S )Nrb   )r   r   rJ   includePackagesr   ZgetSelectionselectedPackagesr   )rZ   Z	selectionZpkgr   r   r   r^     s
    
zPackagesWindow.saveResultsc             C   s6   t jd| j  | jj }| jj|}|dkr2dS |S )Nz
Running %sr_   rC   )r`   ra   rb   rY   rc   rS   rd   )rZ   re   r1   r   r   r   rf     s    
zPackagesWindow.runN)r=   r>   r?   rb   r]   r   r^   rf   r   r   r   r   r   F  s
   6r   c               @   s(   e Zd Zd Zdd Zdd Zdd ZdS )
SendWindowc             C   s   || _ || _tjj }tj|ttdd}tj|d d tt	}|j
|dd tj|ttdfttdfttdfg| _|j
| jddd	dd || _d S )
Nr   rB   r      rC   rq   rr   )rH   rD   )r   r   r   r   )r   rJ   r   rK   rL   rN   r   ZSEND_WINDOWr   ZSEND_WINDOW_DESCrT   rP   r   r   r   rS   rY   )rZ   r   rJ   rL   r[   r   r   r   r   r]     s    


zSendWindow.__init__c             C   s   d S )Nr   )rZ   r   r   r   r^     s    zSendWindow.saveResultsc             C   s6   t jd| j  | jj }| jj|}|dkr2dS |S )Nz
Running %sr_   rC   )r`   ra   rb   rY   rc   rS   rd   )rZ   re   r1   r   r   r   rf     s    
zSendWindow.runN)r=   r>   r?   rb   r]   r^   rf   r   r   r   r   r     s   r   c               @   s0   e Zd Zd Zdd Zdd Zdd Zdd Zd	S )
SendingWindowc             C   sP   || _ || _tjj }tj|ttdd| _tj	dd| _
| jj| j
dd d S )Nr   rp   r   r   )r   rJ   r   rK   rL   rN   r   ZSENDING_WINDOWr   r   r   rT   )rZ   r   rJ   rL   r   r   r   r]     s    
zSendingWindow.__init__c          %   C   s  t jd| j  | jj  | jj  d }yPt jdt| jj	  t
j| jj| jj| jj| jj	d}|j}t|d }W n( tjk
r   tj d }t| jtd|j  Y n tjk
r   tj d }t| jtd|j  Y n tjk
r   tj d }t| jtd|j  Y n tjk
rV   tj d }t| jtd|j  Y nL tjk
rx   t| jt Y n*   t jtj   t| jtd Y nX t
j|st| jtd | jdd	 t
j  | _!| jd
d	 | jj"rbyt
j#|| jj$ W nb tjk
r8   tj d }t| jtd|j  Y n*   t jtj   t| jtd Y nX | jdd	 | jj%ryt
j&|| jj' W nb tjk
r   tj d }t| jtd|j  Y n*   t jtj   t| jtd Y nX d }yt(j) }W n, tjk
r,   t| jtj d  Y nX t
j*| yt
j+ \| j_,| j_-W nH t.k
r   tj d }t/| jtdt0t1f |j  d| j_2Y nX t
j3  | jd	d	 | jj4  || j_5dS )Nz
Running %szother is %s)r   rA   r   zProblem registering system:
zProblem registering system.z&Problem writing out system id to disk.rh   rB   z"Problem sending hardware profile:
z!Problem sending hardware profile.rj   zProblem sending package list:
zProblem sending package list.z%Could not open %s
%s is not enabled.
rC   )6r`   ra   rb   r   r   r   r   strrJ   r   r   ZregisterSystem2r   r   r   ZrawDictr   r   r3   r   r5   r!   rV   r   ZRhnUuidUniquenessErrorZInsuffMgmntEntsErrorZRegistrationDeniedErrorZActivationKeyUsageLimitErrorZACT_KEY_USAGE_LIMIT_ERRORZlog_exceptionZwriteSystemIdr   Z
getOemInfooemInfor   ZsendHardwarer   r   ZsendPackagesr   r   ZupdateLoginInfoZsendVirtInfoZpluginEnablepm_plugin_presentpm_plugin_conf_changedIOErrorr#   r   r   pm_plugin_conf_errorZspawnRhnCheckForUIr   reg_info)rZ   r   ZsystemIdr:   Zlir   r   r   rf     s    








zSendingWindow.runc             C   s   d S )Nr   )rZ   r   r   r   r^   2  s    zSendingWindow.saveResultsc             C   s4   | j jt|d | d  | jj  | jj  d S )Ng      ?r   )r   r~   r   r   r   r   r   )rZ   r   r   r   r   r   r   5  s    
zSendingWindow.setScaleN)r=   r>   r?   rb   r]   rf   r^   r   r   r   r   r   r     s
   
kr   c               @   s(   e Zd Zd Zdd Zdd Zdd ZdS )FinishWindowc             C   s   || _ || _tjj }tj|ttdd}tj|d d tt	}|j
|dd tj|ttddfg| _|j
| jddddd || _d S )	Nr   rB   r      ZFinishrC   )rH   rD   )r   r   r   r   )r   rJ   r   rK   rL   rN   r   ZFINISH_WINDOWr   ZFINISH_WINDOW_TEXT_TUIrT   rP   rV   rS   rY   )rZ   r   rJ   rL   r[   r   r   r   r   r]   >  s    
zFinishWindow.__init__c             C   s   d S )Nr   )rZ   r   r   r   r^   Q  s    zFinishWindow.saveResultsc             C   s6   t jd| j  | jj }| jj|}|dkr2dS |S )Nz
Running %sr_   rC   )r`   ra   rb   rY   rc   rS   rd   )rZ   re   r1   r   r   r   rf   U  s    
zFinishWindow.runN)r=   r>   r?   rb   r]   r^   rf   r   r   r   r   r   ;  s   r   c               @   s(   e Zd Zd Zdd Zdd Zdd ZdS )ReviewWindowc             C   s"  || _ || _|j| _tjj }tj|ttdd}d}| jj	sJ|t
d 7 }| jjr^|td 7 }| jjrr|td 7 }|td 7 }t| jd dkrd}x| jd D ]}||d 7 }qW td t d d }tjd	| jj  |t7 }||| d 7 }t| jd
 dkrld}	xP| jd
 D ]B}
|
dkr2|	td 7 }	n$|
dkrJ|	td 7 }	n|	|
d 7 }	qW |t|	 d 7 }t| jd dkrd}x| jd D ]}||7 }qW |t| 7 }tj|d d |d d t|dd| _|j| jdddd tj|ttdfg| _ |j| j ddddd || _!d S )Nr   rB   rn   z

r   r   r$   z%s
zserver type is %s Zsystem_slotsZenterprise_entitledZvirtualization_hostZuniversal_activation_keyri   r   )rH   rC   )rH   rD   )r   r   r   r   )r   r   r   r   )"r   rJ   r   r   rK   rL   rN   r   ZREVIEW_WINDOWr   ZPM_PLUGIN_WARNINGr   ZPM_PLUGIN_CONF_ERRORr   ZPM_PLUGIN_CONF_CHANGEDZREVIEW_WINDOW_PROMPTr   ZCHANNELS_TITLEZOK_CHANNELSr`   ra   
serverTypeZCHANNELS_SAT_WARNINGZ
MANAGEMENTZVIRTZSLOTSZACTIVATION_KEYrU   Zreview_windowrT   rP   r   rS   rY   )rZ   r   rJ   rL   r[   Zreview_window_textZchannel_listr   r   Z	slot_listZslotZact_key_listZact_keyr   r   r   r]   a  sT    


(zReviewWindow.__init__c             C   s   dS )Nr   r   )rZ   r   r   r   r^     s    zReviewWindow.saveResultsc             C   sN   t jd| j  | jj }| jj|}|dkr2d}| jjs>d}| jj	rJd}|S )Nz
Running %sr_   rC   r    )
r`   ra   rb   rY   rc   rS   rd   rJ   r   r   )rZ   re   r1   r   r   r   rf     s    
zReviewWindow.runN)r=   r>   r?   rb   r]   r^   rf   r   r   r   r   r   ^  s   ?r   c               @   s8   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d ZdS )TuiZRHN_REGISTER_TUIc             C   s   || _ || _tjj | _| j  d| _ytj | _	W n$ t
jk
rX   t|td Y nX tttttttttttttg| _tj d | _td stj dd td | _!d S )Nr   z"You specified an invalid protocol.z Only https and http are allowed.r   z'/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERTzBYou specified an invalid protocol.Only https and http are allowed.)"r   rI   r   rK   rL   	drawFramers   r   ZgetServerTyper   r   ZInvalidProtocolErrorr!   rV   r   r@   r   rg   r   r   r   r   r   r   r   r   r   windowsr
   r4   rW   rw   r~   r   )rZ   r   rI   r   r   r   r]     s6    zTui.__init__c             C   s   | j j  d S )N)r   r   )rZ   r   r   r   __del__  s    zTui.__del__c             C   s4   t | _| jjddt| j | jjttd d S )Nr   zL  <Tab>/<Alt-Tab> between elements  |  <Space> selects  |  <F12> next screen)ZCOPYRIGHT_TEXTZwelcomeTextr   ZdrawRootTextr   ZpushHelpLinerV   )rZ   r   r   r   r     s    zTui.drawFramec             C   s~   d| _ d| _i | _ddddddddddd
| _i | _d| jd< d| _d| _d| _d| _d| _	g | _
g | _d| _d| _d| _d S )Nrn   )
Zentitlement_numZregistration_numZ
first_name	last_nameZcompanyZaddressZcitystatezipZcountryZregistration_numberr   r   )r   r   r   ZproductInfor   r   r   r   r   r   r   r   r   r   r   )rZ   r   r   r   initResults  s2    

zTui.initResultsc             C   sR  t jd| j  | j  d}z"d}x|t| jk r<d }y| j| | j| }W n0 tk
r   |dkrt|d }n|d }w(Y nX t jd|  |j }t jd|  |dkr|dkr|d }|dkr| j| jt	jkr|d8 }d}q(|d	krd S |d
krt jd t
| jdkr:d S q(|dkr(|d }|j  d}q(W W d | jj  X d S )Nz
Running %sZforwardr   r   zindex is %sz	Result %srq   Zbackwardr    rr   zCaught a cancel requestrC   )r`   ra   rb   r   r   r   r   r<   rf   r   r2   r^   r   )rZ   	directionindexwinre   r   r   r   rf      sF    


zTui.runN)	r=   r>   r?   rb   r]   r   r   r   rf   r   r   r   r   r     s   !!r   c              C   s~   d} t j t jt j ttjdkrBtjd dks>tjd dkrBd} tj }t dkrh|  rht	|t
d t|| }|j  d S )Nr   r   z-tz--testz2You must run the RHN registration program as root.)signalSIGINTSIG_IGNr   r   argvr   ZSnackScreenr   r!   rV   r   rf   )rI   r   rJ   r   r   r   main9  s    
r   __main__)<osr   r   gettextZtranslationthasattrr   rV   r   r   Zup2date_clientr   r   r   r   r   r	   r
   Zup2date_client.configr   r   Zrhnr   Zrhn.connectionsr   Zrhn.i18nr   Zup2date_client.pmPluginr   r   Zup2date_client.rhnreg_constantsZinitLogr`   ZinitUp2dateConfigrw   r   r!   r#   r2   r;   	Exceptionr<   r@   rg   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r=   r   r   r   r   <module>   sd   
/w)4))w ~P$ #S 	
