
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
UˆŠZ5¯  ã               @   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ršt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r„t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rÚt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|ršt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 }
�qÞW |
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 }
�qŠW |
tdƒ7 }
xT|jD ]J}|d dk�rÎ|d  �rü|
|d  d 7 }
n|d! �rÎ|
|d! d 7 }
�qÎW |
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raméP   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|ƒ�s¾t| 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%�rðy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ròd}x| jd D ]}||d 7 }q W 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�r®d}x| jd D ]}||7 }�q�W |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 sœt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rôd 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 	
