Hacked By AnonymousFox

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.pyc

�

ܨf����ddlmZddlmZddlmZmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
ZddlmZdZdZdZej�e��Zd	Zej�ed
��Zej�ed��Zej�ed��Zd
ZdZdZdZedd�edd�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"�Z.dS)#�)�print_function)�absolute_import)�request�errorN)�mod_makedirsz/usr/sbin/rhn_checkz/usr/sbin/rhnreg_ksz/var/lve/lveinfo.verz/etc/sysconfig/rhn�systemidz	jwt.token�jwt_last_update_tsi��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_updateGs��� �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_licensefs����"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_ip}s���	
�����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,)�openr0�_letter_templater'r3r4r5r6)r)�templater7s   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�getCPAdminEmailr8r$rB�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-rB�staticmethodr!r*r8r>rDrM�r"r rrBs�����������������,��<���.���X�X�X����	�	�	�	�	r"r�filec��t|d��5}tjd|�����dcddd��S#1swxYwYdS)N�rb�ir)rAr(�unpackr0)rS�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�wbrV)rA�writer(�pack)rSrYrXs   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)
Nr`z--activationkey=z--forcerar�OKTFz9Error: New key activation failed, please try again later.)rrrdrerrfrg�RHN_UPDATE_NEW_KEYrirjrkrlr^rmrrrrrrr3r1rnr')�keyrorprqs    r �update_license_with_keyrv�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�isfilerm�Licenser*rrrr&rRr"r r*r*�sl���G�N�N�)�*�*�)�	�	�	�5�	6�	6�6�	�g�n�n�Y���)�2�7�>�>�,�#?�#?�)�	&�	(�	(�(�
�r"c��|rdStj�t��rdt�d��zSdS)Nrsz5No valid license found, last successful check was on rFzNo valid license found.)rrrxrmryr>)�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�	TEMPLATESrRr"r �get_email_templater��s���	�'� 2�3�3�3r"c�6�ttd��S)Nr
r~rRr"r �get_novalid_templater��s���	�)� 4�5�5�5r"c���tj�|d��rIt��rdSt�|d��t���S|dS)Nr
r)rrrxr*ryrDrM)rCs r rr�sj���G�N�N�8�O�,�-�-���_�_�"�
�$������ 9�:�:�:��
�
�
!�
!�!�	�+�	�r")/�
__future__rr�future.moves.urllibrrrr5rfr(rr:rJ�cldetectlibrG�clcommon.utilsrrhrtrmr�dirnamere�
RHN_DIRECTORY�joinrrrr%r�NO_VALID_LICENSE_FOUND_TEMPLATE�"LICENSE_OUT_OF_DATE_EMAIL_TEMPLATEr�r/rryr4rrr^r&rvr*r|r�r�rrRr"r �<module>r�s^��8&�%�%�%�%�%�&�&�&�&�&�&�.�.�.�.�.�.�.�.�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�����'�'�'�'�'�'�&��*��/������(>�?�?��$�
��w�|�|�M�:�6�6���G�L�L���4�4�	��7�<�<�(=�?S�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"

Hacked By AnonymousFox1.0, Coded By AnonymousFox