????

Your IP : 18.223.203.125


Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/__pycache__/cllicenselib.cpython-311.opt-1.pyc

�

Ck�e ��&�ddlmZddlmZddlmZmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
ZddlmZddlmZdZdZd	Zej�e��Zd
Zej�ed��Zej�ed��Zej�ed
��Zed���rdndZdZdZ dZ!e!dd�e dd�d�Z"dZ#Gd�d��Z$e$��Z%de&fd�Z'de&de(fd�Z)d �Z*d!�Z+d"�Z,d#�Z-d$�Z.d%�Z/d&�Z0dS)'�)�print_function)�absolute_import)�request�errorN)�mod_makedirs)�is_cl_solo_editionz/usr/sbin/rhn_checkz/usr/sbin/rhnreg_ksz/var/lve/lveinfo.verz/etc/sysconfig/rhn�systemidz	jwt.token�jwt_last_update_tsT)�skip_jwt_checkii��i@8z1/usr/share/cloudlinux/no_valid_license_screen.txtz3/usr/share/cloudlinux/license_out_of_date_email.txtz3Error: License out of date, email template missing.)�
template_file�	error_msgz3Error: No valid license found, template is missing.)�Email�NoValidz http://cloudlinux.com/showip.phpc�N�eZdZdZdZdZed���Zd�Zd�Z	d�Z
d�Zd�ZdS)	�LicenseData�c�j�tj�t��r�tj�t��sdSttj�t����}|ttj����tz
krdStt��}||krdSdStj�t��rGtj�t��}|tj�|��kSdS)a�
		Update license when:

		in case JWT token present:
		- if no timestamp file with jwt token last update time
		- if jwt token was not updated during last 4 hours
		- if jwt token was updated later than our timestamp in file

		in case JWT token is not present, but systemid exists
		(fallback for licensing w/o token)
		- update license only if systemid was changed after last timestamp update

		when no jwt and no systemid - re-update license
		TF)�os�path�exists�	JWT_TOKEN�JWT_TOKEN_TIMESTAMP_FILE�int�getmtime�time�JWT_UPDATE_INTERVAL�read_time_from_file�RHN_SYSTEMID)�license_timestamp_file�rhn_updated�jwt_last_update_timestamps   �py/cllicenselib.py�_is_license_needs_updatez$LicenseData._is_license_needs_updateIs��� �W�^�^�I���A�
�'�.�.�1�
2�
2���4��R�W�%�%�i�0�0�1�1�;��C��	���$�$�':�:�:�:��4�2�3K�L�L���+�-�-��4�
�%�	�w�~�~�l�#�#�A���!�!�,�/�/�;�
���(�(�)?�@�@�
@�@�	
��c�Z�	t|��|_ttj����|jz
tkrG|�|��rt
��Stj�	t��SdS#ttj
f$rYdSwxYw)z�
		Checks license:
		1. Reads cache file with timestamp
		2. Ensures license must be re-checked:
			- if timestamp in cache file > CACHE_TIME ->
			check if we need to re-update licensing
		TF)r�_license_last_timestamprr�
CACHE_TIMEr#�update_license_timestamp_filerrrr�IOError�structr)�selfrs  r"�
check_licensezLicenseData.check_licensehs����"5�6L�"M�"M�4��
�4�9�;�;���$�6�6�*�D�D��$�$�%;�<�<�,�)�+�+�+��7�>�>�)�$�$�$��4��
�6�<�	 ����
�%�%����s�A'B�*#B�B*�)B*c�>�|js�	tjt��������|_dS#tj$r>}tdt|��z��tjd��Yd}~dSd}~wwxYwdS)NzError: Get server IP. �)�
_server_ipr�urlopen�SHOW_IP_LINK�read�stripr�URLError�print�str�sys�exit)r+�es  r"�get_ipzLicenseData.get_ips���	
�����o�l�3�3�8�8�:�:�@�@�B�B�D�O�O�O��
�.����	�
"�S��V�V�
+�,�,�,��H�Q�K�K�K�K�K�K�K�K�K����������s�AA
�
B�3B�Bc�p�tj�|j���|��S)N)�datetime�
fromtimestampr&�strftime)r+�formats  r"�date_formatzLicenseData.date_format�s+��	�	�	(�	(��)E�	F�	F�	O�	O�PV�	W�	W�Wr$c���	t|d�����|_dS#t$r>}t	dt|��z��t
jd��Yd}~dSd}~wwxYw)N�rz%Error: Failed to open template file. r.)�openr2�_letter_templater)r5r6r7r8)r+�templater9s   r"�open_letter_templatez LicenseData.open_letter_template�s}�����#�.�.�3�3�5�5�4�����	�����	0�#�a�&�&�	8�9�9�9��8�A�;�;�;�;�;�;�;�;�;��������s�'+�
A3�3A.�.A3c�H�tj��}|�r|���|jsm|j�dd���d|j���dtj�����d|��S|j�dd|�	d��z���d|j���dtj�����d|��SdS)Nz
%LIC_DATE%rz%IP%z
%HOSTNAME%z%FROM%z since �	%b %d, %y)
�detect�getCPAdminEmailr:r&rD�replacer/�socket�gethostnamer@)r+�admin_emails  r"�
format_letterzLicenseData.format_letter�sc���&�(�(�+����;�;�=�=�=�
�
&�J�� �(�(��b�9�9�A�A�&���Y�Y�a�a�bn�ou�pB�pD�pD�E�E�M�M�NV�Wb�c�c�c�� �(�(��i�$�BR�BR�S^�B_�B_�6_�`�`�h�h�io�pt�p�A�A�I�I�JV�W]�Wi�Wk�Wk�l�l�t�t�u}�~I�J�J�J�
�$r$N)
�__name__�
__module__�__qualname__r&r/rD�staticmethodr#r,r:r@rFrO�r$r"rrDs�����������������,��<���.���X�X�X����	�	�	�	�	r$r�filec��t|d��5}tjd|�����dcddd��S#1swxYwYdS)N�rb�ir)rCr*�unpackr2)rU�fs  r"rr�s���
�4����)�!�	��s�A�F�F�H�H�	%�	%�a�	(�)�)�)�)�)�)�)�)�)�)�)�)����)�)�)�)�)�)s�-A�A�A�	timestampc��t|d��5}|�tjd|����ddd��dS#1swxYwYdS)N�wbrX)rC�writer*�pack)rUr[rZs   r"�write_time_to_filer`�s���
�4����'�!��'�'�&�+�c�9�
%�
%�&�&�&�'�'�'�'�'�'�'�'�'�'�'�'����'�'�'�'�'�'s�)A�A�Ac��	tj�t��st	td��tjtgt
jt
j	���}|�
��\}}|jdkr�ttttj������tj�t"��rDtt$ttj�t"������dSdS#t(t*f$rYdSwxYw)N����stdout�stderrrTF)rr�isdir�LICENSE_TIMESTAMP_DIRr�
subprocess�Popen�RHN_CHECK_FILE�PIPE�STDOUT�communicate�
returncoder`�LICENSE_TIMESTAMP_FILErrrrrr�OSErrorr))�p�out�errs   r"r(r(�s����	����,�	-�	-�.��%�u�-�-�-����'�
��
�HY�Z�Z�Z�!��}�}���*�3���\�Q����,�c�$�)�+�+�.>�.>�?�?�?��g�n�n�Y���S��/��R�W�5E�5E�i�5P�5P�1Q�1Q�R�R�R�
�$�	���	�'�����	������s�D'D-�-E�Ec��	tj�t��st	td��tjtd|zdgt
jt
j	���}|�
��\}}|jdkr�ttttj������tj�t"��rDtt$ttj�t"������t)d��dSt)|�����dS#t,t.f$rt)d	��YdSwxYw)
Nrbz--activationkey=z--forcercr�OKTFz9Error: New key activation failed, please try again later.)rrrfrgrrhri�RHN_UPDATE_NEW_KEYrkrlrmrnr`rorrrrrrr5r3rpr))�keyrqrrrss    r"�update_license_with_keyrx�sG���	����,�	-�	-�.��%�u�-�-�-���*�,>�s�,B�I�N�Wa�Wf�oy�pA�B�B�B�!��}�}���*�3���\�Q����,�c�$�)�+�+�.>�.>�?�?�?��g�n�n�Y���S��/��R�W�5E�5E�i�5P�5P�1Q�1Q�R�R�R���;�;�;�
�$����������
�%��	�'������C�D�D�D�	������s�D;E"�?!E"�" F�Fc�8�tj�t��rt�t��Stj�t��s$tj�t��rt��SdS)NF)
rr�isfilero�Licenser,rrrr(rTr$r"r,r,�sl���G�N�N�)�*�*�)�	�	�	�5�	6�	6�6�	�g�n�n�Y���)�2�7�>�>�,�#?�#?�)�	&�	(�	(�(�
�r$c��|rdStj�t��rdt�d��zSdS)Nruz5No valid license found, last successful check was on rHzNo valid license found.)rrrzror{r@)�is_valids r"�last_license_checkr~�sF����	
���G�N�N�)�*�*�#�	@�7�CV�CV�Wb�Cc�Cc�	c�c�	"�	"r$c�6�ttd��S)Nr��get_template_to_display�	TEMPLATESrTr$r"�get_email_templater��s���	�'� 2�3�3�3r$c�6�ttd��S)Nrr�rTr$r"�get_novalid_templater��s���	�)� 4�5�5�5r$c���tj�|d��rIt��rdSt�|d��t���S|dS)Nrr
)rrrzr,r{rFrO)rEs r"r�r��sj���G�N�N�8�O�,�-�-���_�_�"�
�$������ 9�:�:�:��
�
�
!�
!�!�	�+�	�r$)1�
__future__rr�future.moves.urllibrrrr7rhr*rr<rL�cldetectlibrI�clcommon.utilsr�clcommon.lib.cleditionrrjrvror�dirnamerg�
RHN_DIRECTORY�joinrrrr'r�NO_VALID_LICENSE_FOUND_TEMPLATE�"LICENSE_OUT_OF_DATE_EMAIL_TEMPLATEr�r1rr{r6rrr`r(rxr,r~r�r�r�rTr$r"�<module>r�s���8&�%�%�%�%�%�&�&�&�&�&�&�.�.�.�.�.�.�.�.�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�����'�'�'�'�'�'�5�5�5�5�5�5�&��*��/������(>�?�?��$�
��w�|�|�M�:�6�6���G�L�L���4�4�	��7�<�<�(=�?S�T�T��(�'�t�<�<�<�
H�T�T�&�
���"U��%Z�"�6�D���
3�D�
�
�	
�	
�	�2��Y�Y�Y�Y�Y�Y�Y�Y�z�+�-�-��)�c�)�)�)�)�
'�S�'�S�'�'�'�'�
�
�
�"���.���#�#�#�4�4�4�6�6�6�
����r$