JFIF$        dd7 

Viewing File: /usr/share/l.v.e-manager/utils/__pycache__/cloudlinux_cli.cpython-311.pyc

�

G2�*A8���l�ddlmZddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlZddl
Z
ddlZddlmZmZmZmZddlmZddlmZdd	lmZdd
lmZmZddlmZddlm Z m!Z!d
Z"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4d Z5Gd!�d"��Z6Gd#�d$e��Z7dS)%�)�print_function)�division)�absolute_importN)�urlopen)�	getCPName�DIRECTADMIN_NAME�admins�is_admin)�CageFs)�CloudlinuxCliBase)�jwt_token_check)�is_cl_solo_edition�get_cl_edition_readable)�Feature)�get_supported_cl_features�is_panel_feature_supportedz3.10.0-714.10.2.lve1.5.0.7z/var/lve/wizard/done.flagz*/var/lve/wizard/is_first_installation.flagz-/usr/share/web-monitoring-tool/wmtbin/wmt-apiz /usr/sbin/cloudlinux-ssa-managerz/usr/sbin/cloudlinux-xrayz!/usr/sbin/cloudlinux-xray-managerz./opt/alt/php-xray/cloudlinux-xray-user-managerz'/usr/share/alt-php-xray/staging_enabledz/var/lve/enable-wpos.flagz/usr/sbin/cl-smart-advicez/usr/sbin/cl-link-to-clnz /usr/sbin/cloudlinux-autotracingz/usr/sbin/cloudlinux-wizardz)/var/clwpos/admin/awp_migration_needed.v1z/usr/bin/cloudlinux-awp-adminz"/usr/sbin/cloudlinux-awp-installerz /usr/share/cloudlinux-awp-pluginz/usr/share/lvemanager-xrayz0/opt/cpvendor/config/cl-manager-ui-settings.jsonc�J�eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdS)�	UIFeaturez6
    Enum of available CloudLinux features for UI
    �php_selector�
ruby_selector�python_selector�nodejs_selector�mysql_governor�lve�wizard�cagefs�reseller_limits�xray�
accelerate_wp�	mod_lsapi�linking_to_cln�website_monitoringN)�__name__�
__module__�__qualname__�__doc__�PHP_SELECTOR�
RUBY_SELECTOR�PYTHON_SELECTOR�NODEJS_SELECTOR�GOVERNOR�LVE�WIZARD�CAGEFS�RESELLER_LIMITS�XRAY�
ACCELERATE_WP�LSAPI�LINKING_TO_CLN�WEBSITE_MONITORING���t/builddir/build/BUILDROOT/lvemanager-7.11.29-1.el9.cloudlinux.x86_64/usr/share/l.v.e-manager/utils/cloudlinux_cli.pyrr>sc��������"�L�#�M�'�O�'�O��H�
�C�
�F�
�F�'�O��D�#�M��E�%�N�-���r6rc���eZdZdZdZdZdZdZdZ�fd�Z	�fd�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&e'd%���Z(d&�Z)d'�Z*d(�Z+d)�Z,d*�Z-d+�Z.d,�Z/d-�Z0d.�Z1d/�Z2d0�Z3d1�Z4d2�Z5d3�Z6d4�Z7d5�Z8d6�Z9d7�Z:d8�Z;d9�Z<d:�Z=d;�Z>d<�Z?�xZ@S)=�
CloudlinuxCliNz$/var/lve/web-team/rss_news_cache.txtz6https://blog.cloudlinux.com/tag/technical-blog/rss.xml�<z/usr/bin/imunify360-agentz/etc/sysconfig/rhn/jwt.tokenc����tt|�����|j�id|j�d|j�d|j�d|j�d|j	�d|j
�d|j�d|j�d	|j
�d
|j�d|j�d|j�d
|j�d|j�d|j�d|j�d|j�|j|j|j|j|j|j|jd����dS)Nzcloudlinux-limitszcloudlinux-licensezcloudlinux-configzcloudlinux-packageszcloudlinux-summaryzcloudlinux-wizardzcloudlinux-supportzspa-get-admins�	cagefsctl�cldiagzspa-get-rss-newszspa-check-imunify-av�lvectlzcloudlinux-xray-managerzcloudlinux-xray�
external-infozcloudlinux-log)zwmt-apizcloudlinux-ssa-managerzcloudlinux-awp-adminzcloudlinux-autotracingzcl-smart-advicezcl-link-to-clnzcloudlinux-awp-installer)�superr9�__init__�command_methods�update�	cl_limits�
cl_license�	cl_config�cl_packages�
cl_summary�	cl_wizard�
cl_support�spa_get_adminsr<r=�spa_get_rss_news�spa_check_imunify_avr>�agent�cl_xray�
external_info�cl_log�wmt_api�cl_ssa�cloudlinux_awp_admin�cl_autotracing�cl_smart_advice�cl_link_to_cln�cl_awp_installer)�self�	__class__s �r7rAzCloudlinuxCli.__init__Zsq���
�m�T�"�"�+�+�-�-�-���#�#�%
����%
� �$�/�%
�
 �$�.�%
�
"�4�#3�	%
�

!�$�/�%
�
 ���
%
�
!�$�/�%
�
�d�1�%
�
���%
�
�d�k�%
�
�� 5�%
�
#�D�$=�%
�
�d�k�%
�
&�t�z�%
�
�t�|�%
� 
�T�/�!%
�"
�d�k�#%
�$�|�&*�k�$(�$=�&*�&9�#�3�"�1�(,�(=�1%
�%
�%
�	�	�	�	�	r6c�*��|j}|ddvr|�d��tt|�����|ddkr�|�d��dkr�|���r|�ddd	�
��|���dkrW|���dvr!|�dd
dtid	���n |�dddtid	���|�
��s|�ddddid���tj��dkr>tj
g��tjd��tjd��dSdS)zW
        Drop permission to users, if owner of script is user
        :return:
        �owner)�admin�reseller�User not allowedr^�commandr?i�zERROR.login_by_admin�info)�code�error_id�icon�	)�el7�el6hzERROR.not_supported_kernel�resellerKernelVersion)rbrc�contextrdzERROR.not_supported_OSzERROR.not_available_plugin�
pluginNamezCloudLinux Manager�disabledrN)�request_data�exit_with_errorr@r9�drop_permission�get�is_user_in_admin_list�get_lve_version�get_cloudlinux_version�RESELLER_KERNEL_VERSION�is_activated_reseller�os�getuid�	setgroups�setgid�setuid)rY�datarZs  �r7rnzCloudlinuxCli.drop_permissionws����
� ����=� 5�5�5�� � �!3�4�4�4�
�m�T�"�"�2�2�4�4�4���=�J�&�&�4�8�8�I�+>�+>�/�+Q�+Q��)�)�+�+�
!��$�$��3��%�!�!�!��#�#�%�%��*�*��.�.�0�0�O�C�C��(�(� �!=�!8�:Q� R�#�	)�%�%�%�%��(�(� �!9�!8�:Q� R�#�	)�%�%�%�
�-�-�/�/�
%��$�$��9�)�+?�@�#�	%�%�%�%�
�9�;�;�!����L������I�a�L�L�L��I�a�L�L�L�L�L��r6c��|���}	tjdg|ztjdd���}n##tj$r}|j}Yd}~nd}~wwxYw	t
j|��}|���|d<d|d<tt
j
|����n#t|��YnxYwtjd��dS)Nz/usr/sbin/cloudlinux-summaryFT��stderr�shell�text�statistic_enabled�ignorer)
�prepair_params_for_command�
subprocess�check_output�STDOUT�CalledProcessError�output�json�loads�_is_statistics_enabled_by_admin�print�dumps�sys�exit)rY�list_to_requestr��processError�results     r7rHzCloudlinuxCli.cl_summary�s����9�9�;�;��	)��,�.L�-M�P_�-_�4>�4E�38�t�E�E�E�F�F���,�	)�	)�	)�!�(�F�F�F�F�F�F�����	)����	��Z��'�'�F�*.�*N�*N�*P�*P�F�&�'�#�F�8���$�*�V�$�$�%�%�%�%��	��&�M�M�M�M�M�����������s"�&=�A�A�A�!AB3�3Cc�x�ddlm}|���}|��}|�|��dS)Nr)�CloudlinuxLimits)�cllimits.lib.limitsr�r��run)rYr�r��cls    r7rDzCloudlinuxCli.cl_limits�sK��8�8�8�8�8�8��9�9�;�;��
�
�
�
��
��������r6c�8�ddlm}|j�di���d��dkr.|jd�d��|jdd<|���}|��}|�|��dS)Nr)�CloudlinuxLicense�params�key��ip)�cllicense.licenser�rlro�popr�r�)rYr�r��clls    r7rEzCloudlinuxCli.cl_license�s���7�7�7�7�7�7��� � ��2�.�.�2�2�5�9�9�R�?�?�04�0A�(�0K�0O�0O�PU�0V�0V�D��h�'��-��9�9�;�;����!�!������ � � � � r6c�z�ddlm}	|���}|��}|�|��dS)Nr)�ClConfig)�clconfig.configr�r�r�)rYr�r�r�s    r7rFzCloudlinuxCli.cl_config�sO��,�,�,�,�,�,�	��9�9�;�;���h�j�j������ � � � � r6c�|�ddlm}|�d���}|��}|�|��dS)Nr)�CloudlinuxPackagesT)�escaped_strings)�clpackages.packagesr�r�r�)rYr�r�r�s    r7rGzCloudlinuxCli.cl_packages�sR��:�:�:�:�:�:��9�9�$�9�O�O�� � �"�"������ � � � � r6c	�&�|jddkrjt��tkrStt	jdt
t����d�����tj	d��dS|�
d��dS)Nr\r]�success)r��listrzCommand is not available)rlrrr�r�r�r�r	r�r�rm�rYs r7rKzCloudlinuxCli.spa_get_admins�s�����W�%��0�0�Y�[�[�DT�5T�5T��$�*�#�T�&�(�(�^�^�<�<�>�>�
?�
?�
?��H�Q�K�K�K�K�K�� � �!;�<�<�<�<�<r6c�*�d}tj��}tj�|j��r$tj�|j��nd}||z
dz}||jkr|���	t|jd��5}|�	��}ddd��n#1swxYwYn#t$rYnwxYwttj
d||d�����tjd��dS)Nrr:�rr�)r��content�age)�timeru�path�exists�RSS_NEWS_CACHE_FILE�getmtime�RSS_CACHE_LIFETIME�_update_rss_news�open�read�IOErrorr�r�r�r�r�)rYr��cur_time�last_modified_time�age_of_file�fs      r7rLzCloudlinuxCli.spa_get_rss_news�s[�����9�;�;���w�~�~�d�6�7�7�?�R�W�-�-�d�.F�G�G�G�=>�	��"4�4��:����0�0�0�� � �"�"�"�	��d�.��4�4�
#���&�&�(�(��
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#����
#�
#�
#�
#����	�	�	��D�	����	�d�j����
�
���	�	�	�
	�������s6�C
�B>�2C
�>C�C
�C�C
�

C�Cc��tj�tj�|j����s6tjtj�|j����	t
|j��}t|jd��5}|�	|�
���d����ddd��dS#1swxYwYdS#t$rYdSwxYw)Nzw+zutf-8)
rur�r��dirnamer��makedirsr�RSS_REMOTE_URLr��writer��decoder�)rY�xmlfr�s   r7r�zCloudlinuxCli._update_rss_news�s���w�~�~�b�g�o�o�d�.F�G�G�H�H�	C��K������(@�A�A�B�B�B�	��4�.�/�/�D��d�.��5�5�
5������	�	���*�*�7�3�3�4�4�4�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5�
5�
5���	�	�	��D�D�	���s6�9)C7�";C*�C7�*C.�.C7�1C.�2C7�7
D�Dc��tj�|j��rdnd}t	tjd|d�����dS)N�	installed�
not_installedr��r��response)rur�r��IMUNIFY360_FILEr�r�r�)rYr�s  r7rMz"CloudlinuxCli.spa_check_imunify_av�sG�� "����t�/C� D� D�Y���/��
�d�j�I�6�C�C�D�D�E�E�E�E�Er6c	�&����jddkrdSt����j�d��}|rn�j�j�j��fd���fd���fd���fd���fd�d	��|��}t
tjd
|��d�����nO��	d�
��}��
|��}t
tjd
|d�����tjd��dS)Nr\r]�methodc�l����d�jd�d����S)N�enabler��users��
change_statusrlro�rrYs��r7�<lambda>z)CloudlinuxCli.cagefsctl.<locals>.<lambda>s/���&�"6�"6�x��AR�S[�A\�A`�A`�ah�Ai�Ai�"j�"j�r6c�l����d�jd�d����S)N�disabler�r�r�r�s��r7r�z)CloudlinuxCli.cagefsctl.<locals>.<lambda>s/���6�#7�#7�	�4�CT�U]�C^�Cb�Cb�cj�Ck�Ck�#l�#l�r6c�j�����jd�d����S�Nr��	operation)�get_logrlror�s��r7r�z)CloudlinuxCli.cagefsctl.<locals>.<lambda>	s)���v�~�~�d�.?��.I�.M�.M�k�.Z�.Z�[�[�r6c�j�����jd�d����Sr�)�download_logrlror�s��r7r�z)CloudlinuxCli.cagefsctl.<locals>.<lambda>
s,����(;�(;�D�<M�h�<W�<[�<[�\g�<h�<h�(i�(i�r6c�j�����jd�d����Sr�)�cagefs_log_datarlror�s��r7r�z)CloudlinuxCli.cagefsctl.<locals>.<lambda>s,���F�$:�$:�4�;L�X�;V�;Z�;Z�[f�;g�;g�$h�$h�r6)�status�initrCr�r��logzdownload-log�log_datar�r�F��	with_jsonr)
rlrror�r�rCr�r�r�r�r�r�r�)rYr��funcr�r�rs`    @r7r<zCloudlinuxCli.cagefsctl�s=������W�%��0�0��F������"�&�&�x�0�0���	K� �-��� �-�j�j�j�j�j�l�l�l�l�l�[�[�[�[�[� i� i� i� i� i�h�h�h�h�h�	�	��c�&�k�k�
�
�$�*�	�t�t�v�v�F�F�G�G�H�H�H�H�"�=�=��=�N�N�O��z�z�/�2�2�H��$�*�	�x�H�H�I�I�J�J�J��������r6c��dg|���z}t|��dkr|�d��d}	ttjd��5}t
j||dd���}ddd��n#1swxYwYtj	|��}n|#tj
$r3}	tj	|j��}n#|j}YnxYwYd}~n?d}~wt$r/}|�
dt|��z��Yd}~nd}~wwxYw|r$ttjd	|d
�����t#jd��dS)Nz/usr/bin/cldiag�z--all�wFTr|zCan't call cldiag: r�)r�rzr)r��len�appendr�ru�devnullr�r�r�r�r�r��OSErrorrm�strr�r�r�r�)rYr�r�r�r��es      r7r=zCloudlinuxCli.cldiags���#�$�t�'F�'F�'H�'H�H���v�;�;�!����M�M�'�"�"�"���
	B��b�j�#�&�&�
a�'�#�0���u�[_�`�`�`��
a�
a�
a�
a�
a�
a�
a�
a�
a�
a�
a����
a�
a�
a�
a��Z��'�'�F�F���,�	"�	"�	"�
"���A�H�-�-����
"�������������������	B�	B�	B�� � �!7�#�a�&�&�!@�A�A�A�A�A�A�A�A�����	B�����	"��$�*�#�� � �!�!�
"�
"�
"�	�������sZ�B#�B�7B#�B�B#�
B�B#�#D�3C
�C �
	C�C � 
D�-%D�Dc�$�|jddkrdS|j�d��}|j�di��pi}|dkr*ddlm}||��}|�d|i��dS|�d	��dS)
Nr\r]r�r�z
custom-fieldsr)�$build_custom_fields_from_send_params�fieldszMethod is not available)rlro�
libsupportr��exit_with_successrm)rYr�r�r�r�s     r7rJzCloudlinuxCli.cl_support*s�����W�%��0�0��F��"�&�&�x�0�0���"�&�&�x��4�4�:����_�$�$�G�G�G�G�G�G�9�9�&�A�A�F��"�"��&�$�
�
�
�
�
�
� � �!:�;�;�;�;�;r6c�*�|jddkrdS|j�d��}|s|�dd����n6|dkr2d|j�d	i��vr|���n�|dkr2d|j�d	i��vr|���n�|d
kr|���n�|dkr|���n�|dkr|���nu|�d
���}	t|j
tg|�R���n=#t$r0}|�tj����Yd}~nd}~wwxYwtjd��dS)Nr\r]r�zModule unavailableT��
ignore_errorsr��initialr�r�r��finishFr�r)rlrorm�wizard_get_status�wizard_get_initial�
wizard_log�wizard_log_data�
wizard_finishr�r��run_util�
CL_WIZARD_CLI�	Exception�	traceback�
format_excr�r�)rYr�r�r�s    r7rIzCloudlinuxCli.cl_wizard9s�����W�%��0�0��F��"�&�&�x�0�0���	=�� � �!5�T� �J�J�J�J�
�x�
�
�I�T�5F�5J�5J�8�UW�5X�5X�$X�$X��"�"�$�$�$�$�
�x�
�
�I��1B�1F�1F�x�QS�1T�1T�$T�$T��#�#�%�%�%�%�
�u�_�_��O�O�����
�z�
!�
!�� � �"�"�"�"�
�x�
�
���� � � � �"�=�=��=�N�N�O�
=��m�d�m�M�D�O�D�D�D�E�E�E�E���
=�
=�
=��$�$�Y�%9�%;�%;�<�<�<�<�<�<�<�<�����
=�����������s�! E�
E<�&E7�7E<c��ttjdtj�t��d�����tjd��dS)Nr�)r��is_first_installationr)	r�r�r�rur�r��FIRST_INSTALL_FLAGr�r�r�s r7�spa_detect_first_installationz+CloudlinuxCli.spa_detect_first_installationQsT��
�d�j��%'�W�^�^�4F�%G�%G�
�
���	�	�	�	�������r6c�t�|jd}|j��tjgd�tjtj���}|���\}}|jdkr|���	d�tj	|��dD��|_n#g|_YnxYw||jvS)N�username)r>z
list-resellerz--with-namez--json)�stdoutr}rc�l�g|]1}|�dd���d��d��2S)�IDr��:���)ro�split)�.0r^s  r7�
<listcomp>z7CloudlinuxCli.is_activated_reseller.<locals>.<listcomp>bsO��"E�"E�"E� �#+�,�,�t�R�"8�"8�">�">�s�"C�"C�B�"G�"E�"E�"Er6rz)
�	user_info�	resellersr��Popen�PIPE�communicate�
returncode�
check_licenser�r�)rYr�p�res_in_json�errs     r7rtz#CloudlinuxCli.is_activated_resellerXs����>�*�-���>�!�� �D�D�D�!��z��@�@�@�A�"#������[�#��|�q� � ��"�"�$�$�$�
$�"E�"E�$(�J�{�$;�$;�F�$C�"E�"E�"E�����
$�!#���������4�>�)�)s�9)B#�#	B.c�l�t��tkrt|jd��rdSdS)zT
        Check user in admin list (disable reseller plugin for admin in DA)
        rTF)rrr
rr�s r7rpz#CloudlinuxCli.is_user_in_admin_lisths5���;�;�*�*�*����z�2�3�3�
��t��ur6c�@�tjtjd��S)N�cl_statistics_enabled)�detect�get_boolean_param�CL_CONFIG_FILEr�s r7r�z-CloudlinuxCli._is_statistics_enabled_by_adminqs���'��(=�?V�W�W�Wr6c�J�tj�t��S)N)rur�r�rr�s r7�checkIsFirstInstallz!CloudlinuxCli.checkIsFirstInstallus������1�2�2�2r6c�N�|���r$tj�t��r|�ddi��dS	|�tdd���}tj	|��}|�
d��dkr|�ddi��dSt|��dS#t$r}t|��Yd}~dSd}~wt$r1}|�tj����Yd}~dSd}~wwxYw)N�
wizard_statusr�r�Tr��idle�
first_install)r rur�r��	DONE_FLAGr�r�r�r�r�ror��
ValueErrorr�rmr�r)rYr�rzr�s    r7r�zCloudlinuxCli.wizard_get_statusxs5���'�'�)�)�
	=�R�W�^�^�I�-F�-F�
	=��"�"�O�X�#>�?�?�?�?�?�

=����}�h�d��S�S���z�&�)�)���8�8�O�,�,��6�6��*�*�O�_�+M�N�N�N�N�N��&�M�M�M�M�M���
�
�
��f�
�
�
�
�
�
�
�
�
������
=�
=�
=��$�$�Y�%9�%;�%;�<�<�<�<�<�<�<�<�<�����
=���s+�A!C�6C�
D$�C&�&
D$�3&D�D$c�:�|�tddd���}tj|��}d|�d��vr.|�dd|�d��i�	��dSt
|��tjd
��dS)Nr�z	--initialTr�zRPM DB check errorr�zRPM DB is Corrupted�message)rir)	r�r�r�r�rormr�r�r�)rYr�rzs   r7r�z CloudlinuxCli.wizard_get_initial�s������}�h��SW��X�X���z�&�!�!���4�8�8�H�#5�#5�5�5�� � �!6��4�8�8�H�-�-�A� �
�
�
�
�
�
�&�M�M�M��H�Q�K�K�K�K�Kr6c	��|���}ttjd|tj�|��d�����dS)�N
        Check log file exists and return filename to wrapper to seed
        �file)r��filepath�filesizeN)�_get_wizard_log_filer�r�r�rur��getsize)rYr,s  r7r�zCloudlinuxCli.wizard_log�s`���,�,�.�.��
�d�j�� ������1�1�
�
���	�	�	�	�	r6c���|���}t|��5}tj|tjd��ddd��n#1swxYwYt	jd��dS)r*iPNr)r.r��shutil�copyfileobjr�rr�)rYr,�log_files   r7r�zCloudlinuxCli.wizard_log_data�s����,�,�.�.��
�(�^�^�	>�x���x���W�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>��������s�!A�A�Ac����|j�di���d���|�td��}t	j|��}�dkr|�d��}n0t
�fd�|�dg��D��d��}|s(|�d�|����tj
�|��s(|�d	�|����tj|tj
��s(|�d
�|����|S)Nr��moduler��crash�	crash_logc3�t�K�|]2}|�d���k�|�d��V��3dS)�namer3N�ro)r
r5�module_names  �r7�	<genexpr>z5CloudlinuxCli._get_wizard_log_file.<locals>.<genexpr>�sR���������J�J�v�&�&�+�5�5����J�'�'�5�5�5�5��r6�moduleszLog file {} not foundzFile {} does not existsz!File {} not available for reading)rlror�r�r�r��nextrm�formatrur��isfile�access�R_OK)rYrzr,r;s   @r7r.z"CloudlinuxCli._get_wizard_log_file�sX����'�+�+�H�b�9�9�=�=�h�G�G���}�}�]�H�5�5���z�$�����'�!�!��x�x��,�,�H�H������#�x�x�	�2�6�6�����	��H�
�	K�� � �!8�!?�!?��!I�!I�J�J�J��w�~�~�h�'�'�	M�� � �!:�!A�!A�(�!K�!K�L�L�L��y��2�7�+�+�	W�� � �!D�!K�!K�H�!U�!U�V�V�V��r6c��tj�t��rtjt��t|�tdd�����tj	d��dS)Nr�Tr�r)
rur�r�r�remover�r�r�r�r�r�s r7r�zCloudlinuxCli.wizard_finish�s[��
�7�>�>�,�-�-�	*��I�(�)�)�)�
�d�m�m�M�8�4�m�H�H�I�I�I��������r6c�|�gd�}ddd�}g}|j�di��}|�d���G|�d���2ttjd	d
i����td��|j�d��|vr(|�|jd��|jd<|D]/}|�|d��}|r|�|���0|r:d
�|j�dd��g|z��|jd<|�dd��}|�	��}	t|j
dg|�Rd|i���dS#t$r1}	|�tj����Yd}	~	dSd}	~	wwxYw)z!run lvectl command with arguments)�lveidr�package�pidz	apply allzdestroy all)z	apply-allzdestroy-allr�rFNr�errorz3lveid and username should not be presented togetherrr�� r��stdinz/usr/sbin/lvectl)rlror�r�r�r�r�r��joinr�r�r�rmr�r)
rY�POSITION_ARGUMENTS_LIST�REPLACE_METHODS�position_argumentsr��argument�valuerKr�r�s
          r7r>zCloudlinuxCli.lvectl�s���"I�"I�"I��$�(�
�
�� ���"�&�&�x��4�4���:�:�g���*�v�z�z�*�/E�/E�/Q��$�*�g�'\�]�^�^�_�_�_���G�G�G��� � ��*�*�o�=�=�*9�*=�*=�d�>O�PX�>Y�*Z�*Z�D��h�'�/�	1�	1�H��J�J�x��.�.�E��
1�"�)�)�%�0�0�0���	o�*-�(�(�D�4E�4I�4I�(�TV�4W�4W�3X�[m�3m�*n�*n�D��h�'��
�
�7�D�)�)���9�9�;�;��	9��-�$�-� 2�R�_�R�R�R�E�R�R�S�S�S�S�S���	9�	9�	9�� � ��!5�!7�!7�8�8�8�8�8�8�8�8�8�����	9���s� F�
F;�
&F6�6F;c�4�d�}|�d���}	|jtg|�Rd|i�}tj|��}|�|��dS#t$r1}|�tj	����Yd}~dSd}~wwxYw)z1
        Agnet requests
        :return:
        c�4�|�d��dkS)Nr��okr:)�json_results r7�xray_error_checkerz/CloudlinuxCli.agent.<locals>.xray_error_checker�s���?�?�8�,�,��4�4r6Fr��
error_checkerN)
r�r��XRAY_AGENT_CLIr�r�r�r�rmr�r)rYrVr�r�r�s     r7rNzCloudlinuxCli.agent�s���	5�	5�	5��9�9�E�9�J�J��	9�$�t�}�^�h�o�h�h�h�Ug�h�h�H��z�(�+�+�H��"�"�8�,�,�,�,�,���	9�	9�	9�� � ��!5�!7�!7�8�8�8�8�8�8�8�8�8�����	9���s�?A�
B�&&B�Bc�(�|�d���}	|jtg|�R�}tj|��}|�|��dS#t$r1}|�tj	����Yd}~dSd}~wwxYw)zA
        Run cloudlinux-autotracing
        :return: Any
        Fr�N)
r�r��CL_AUTOTRACING_CLIr�r�r�r�rmr�r)rYr�r�r�s    r7rUzCloudlinuxCli.cl_autotracing�s���
�9�9�E�9�J�J��	9�$�t�}�%7�J�/�J�J�J�H��z�(�+�+�H��"�"�8�,�,�,�,�,���	9�	9�	9�� � ��!5�!7�!7�8�8�8�8�8�8�8�8�8�����	9���s�<A�
B� &B�Bc���	|jddkrSt|jd��5}|������cddd��S#1swxYwYdS#YdSxYw)zc
        Get JSON Web Token from file /etc/sysconfig/rhn/jwt.token
        :return: string
        r\r]r�Nr�)rlr��JWT_FILEr��strip)rYr�s  r7�get_jwtzCloudlinuxCli.get_jwt�s���
	�� ��)�W�4�4��$�-��-�-�,���6�6�8�8�>�>�+�+�,�,�,�,�,�,�,�,�,�,�,�,����,�,�,�,��2��	��2�2���s.�&A(�&A�A(�A�A(�"A�#A(�(A-c���ttt|�d������}ttt|�d������}||kS)z�
        :param ver1: string
        :param ver2: string
        :return: True if first version is bigger or equal to the second
        �.)�tuple�map�intr)�ver1�ver2�
ver1_tuple�
ver2_tuples    r7�compare_versionszCloudlinuxCli.compare_versionssQ���3�s�D�J�J�s�O�O�4�4�5�5�
��3�s�D�J�J�s�O�O�4�4�5�5�
��Z�'�'r6c�X�|���}|�|��|S)z9
        Merge two dicts and return merge result
        )�copyrC)rY�dict1�dict2r�s    r7�merge_dictszCloudlinuxCli.merge_dictss(���������
�
�e�����
r6c��	t|d��5}tj|��cddd��S#1swxYwYdS#t$ricYSwxYw)z2
        Read json file and return result
        r�N)r�r��load�FileNotFoundError)rY�config_path�config_files   r7�read_json_config_filez#CloudlinuxCli.read_json_config_files���	��k�3�'�'�
.�;��y��-�-�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.����
.�
.�
.�
.�
.�
.�� �	�	�	��I�I�I�	���s,�A�3�A�7�A�7�A�A�Ac�,�|�d���}tj|jtg|�R���}|�d��dkr|�|��dS|�|�d����dS)z[
        Check status and install xray utility
        Return status and server_id
        Fr�r�r�r�N)r�r�r�r��XRAY_CLIror�rm�rYr��
util_responses   r7rOzCloudlinuxCli.cl_xray$s����9�9�E�9�J�J���
�=�4�=��#L�O�#L�#L�#L�M�M�
����X�&�&�)�3�3��"�"�=�1�1�1�1�1�� � ��!2�!2�:�!>�!>�?�?�?�?�?r6c��t��}tj�t��rF|�t��}|�di��}|�||��S|S)N�features_override)rrur�r@�CL_MANAGER_UI_SETTINGSrsrorm)rY�supported_features�config�features_from_configs    r7�get_available_cl_featuresz'CloudlinuxCli.get_available_cl_features1so��6�8�8���7�>�>�0�1�1�	N��/�/�0F�G�G�F�#)�:�:�.A�2�#F�#F� ��#�#�$6�8L�M�M�M�!�!r6c��|���}tj|�tjd��tj|�tjd��tj|�tjd��tj|�tjd��tj|�	|��tj
|�tj
d��tj|�tjd��tj|�tjd��tj
|�tj
d��tj|�tjd��tj|�tjd��tj|�tjd��tj|�tjd��tj|�tjd��iS)NFT)r~rr'rorr(r)r*r+�is_governor_availabler.r,r/r0r1�WPOSr-r2r3r4)rY�featuress  r7�get_supported_features_for_uiz+CloudlinuxCli.get_supported_features_for_ui;sp���1�1�3�3���"�H�L�L��1E�u�$M�$M��#�X�\�\�'�2G��%O�%O��%�x�|�|�G�4K�U�'S�'S��%�x�|�|�G�4K�U�'S�'S���� :� :�8� D� D���h�l�l�7�>�5�A�A��M�8�<�<���U�;�;��%�x�|�|�G�4K�U�'S�'S��N�H�L�L���u�=�=��#�X�\�\�'�,��%F�%F���h�l�l�7�>�5�A�A��O�X�\�\�'�-��?�?��$�h�l�l�9�3K�T�&R�&R��(�(�,�,�y�7S�UY�*Z�*Z�
�	
r6c�N�tj�t��}|S)z:
        Check if Slow Site Analyzer availability
        )rur�r��SSA_CLI)rY�ssa_binary_presents  r7�is_ssa_installedzCloudlinuxCli.is_ssa_installedNs�� �W�^�^�G�4�4��!�!r6c�J�tj�t��S)z:
        Check if Website Monitoring availability
        )rur�r��WMT_API_CLIr�s r7�is_wmt_installedzCloudlinuxCli.is_wmt_installedUs���w�~�~�k�*�*�*r6c�N�tj�t��}|S)z1
        Check Smart Advice availability
        )rur�r��SMART_ADVICE_CLI)rY�smart_advice_binary_presents  r7�is_smart_advice_installedz'CloudlinuxCli.is_smart_advice_installed[s��')�g�n�n�5E�&F�&F�#�*�*r6c��ttj�t��o#tj�t
��g��}|S)z*
        Check X-Ray availability
        )�allrur�r@rX�XRAY_USER_AGENT_CLI)rY�xray_binary_presents  r7�is_xray_installedzCloudlinuxCli.is_xray_installedbs=��"�2�7�>�>�.�#A�#A�#i�b�g�n�n�Uh�Fi�Fi�"j�k�k��"�"r6c�N�tj�t��}|S)z1
        Check AccelerateWP availability
        )rur�r��AWP_PLUGIN_PATH)rY�awp_plugin_installeds  r7�is_awp_installedzCloudlinuxCli.is_awp_installedis�� "�w�~�~�o�>�>��#�#r6c��|�tjd��}|�tjd��}t	||g��S)z3
        Check if Governor available in UI
        F)rorr+r,r�)rYr��is_governor�is_lves    r7r�z#CloudlinuxCli.is_governor_availablepsB���l�l�7�#3�U�;�;�����g�k�5�1�1���K��(�)�)�)r6c���|jddkr|���dS|jddkr|���dS|�d��dS)zS
        Return external info based on the owner type (admin or reseller).
        r\r]r^r_N)rl�_get_admin_external_info�_get_reseller_external_informr�s r7rPzCloudlinuxCli.external_infoxsu����W�%��0�0��)�)�+�+�+�+�+�
�
�w�
'�:�
5�
5��,�,�.�.�.�.�.�� � �!3�4�4�4�4�4r6c��ddlm}|d��pd}|r|�d��d}|���}t	��\}}}|�id|�d|�d|�d	t
d
����dtj�	t���d
tj�	t���d|����d|�
���dd
�dtj�	t���dtj�	t���dt!���d|����d|����d|����d|����d|����|���|���|���d����dS)zC
        Gather and return external info needed for admin.
        r)�get_rhn_systemid_value�	system_idr��-��jwt�cl_plusrT��skip_jwt_check�xray_staging_enabled�awp_premium�awp_plugin_version�xray_plugin_version�plugin_installed�autotracing�awp_migration_needed�
cl_edition�supported_cl_features�xray_installed�accelerate_wp_installed�
ssa_installed�
wmt_installed)�
awp_installed�smart_advice_installed�	server_ipN)�clcommon.utilsr�rr^r
r�rrur�r@�XRAY_STAGING_ENABLED_FLAG�AWP_PREMIUM_ENABLED_FLAG�get_awp_plugin_version�get_xray_plugin_versionrZ�AWP_MIGRATION_NEEDED_FLAGrr�r�r�r�r�r��
get_server_ip)rYr�r�r��is_valid�_s      r7r�z&CloudlinuxCli._get_admin_external_info�s7��	:�9�9�9�9�9�*�*�;�7�7�=�2�	��	0�!����,�,�Q�/�I��l�l�n�n��(�*�*���!�Q���� 
��� 
��3� 
�
�x� 
�
!�"4�D�"I�"I�"I�	 
�

#�B�G�N�N�3L�$M�$M� 
�
�2�7�>�>�*B�C�C�
 
�
!�$�"=�"=�"?�"?� 
�
"�4�#?�#?�#A�#A� 
�
�� 
�
�2�7�>�>�*<�=�=� 
�
#�B�G�N�N�3L�$M�$M� 
�
�1�3�3� 
�
$�T�%G�%G�%I�%I� 
�
�d�4�4�6�6� 
�
&�t�'<�'<�'>�'>� 
� 
�T�2�2�4�4�! 
�"
�T�2�2�4�4�# 
�$"�2�2�4�4�&*�&D�&D�&F�&F��+�+�-�-�) 
� 
� 
�	�	�	�	�	r6c��|�td���t��|���|���d���dS)zF
        Gather and return external info needed for reseller.
        Tr�)rr�r�r�N)r�rrr�r�r�s r7r�z)CloudlinuxCli._get_reseller_external_info�se��	
���"4�D�"I�"I�"I�1�3�3�%)�%G�%G�%I�%I��+�+�-�-�	 
� 
�	�	�	�	�	r6c�,�|�d���}tj|jtg|�R���}|�d��dkr|�|��dS|�|�d����dS�NFr�r�r�r�)r�r�r�r�r�ror�rmrvs   r7rRzCloudlinuxCli.wmt_api�s����9�9�E�9�J�J���
�=�4�=��#O��#O�#O�#O�P�P�
����X�&�&�)�3�3��"�"�=�1�1�1�1�1�� � ��!2�!2�:�!>�!>�?�?�?�?�?r6c�,�|�d���}tj|jtg|�R���}|�d��dkr|�|��dS|�|�d����dSr�)r�r�r�r�r�ror�rmrvs   r7rSzCloudlinuxCli.cl_ssa�s����9�9�E�9�J�J���
�=�4�=��#K�?�#K�#K�#K�L�L�
����X�&�&�)�3�3��"�"�=�1�1�1�1�1�� � ��!2�!2�:�!>�!>�?�?�?�?�?r6c��|j�di���d��}|r5tjdtjd���tj|��|���dS)zE
        Writes log message to the log file
        :return:
        r�r(z"/var/log/cloudlinux/lvemanager.logz%(asctime)s %(message)s)�filename�levelr?N)rlro�logging�basicConfig�INFOrar�)rYr(s  r7rQzCloudlinuxCli.cl_log�s���
�#�'�'��"�5�5�9�9�)�D�D���	"���)M�&-�l�'@�
B�
B�
B�
B�
�L��!�!�!���� � � � � r6c�,�|�d���}tj|jtg|�R���}|�d��dkr|�|��dS|�|�d����dS)z<
        Run cloudlinux-awp-admin utility with args
        Fr�r�r�r�N)r�r�r�r��
AWP_CLI_ADMINror�rmrvs   r7rTz"CloudlinuxCli.cloudlinux_awp_admin�s����9�9�E�9�J�J���
�=�4�=��#Q��#Q�#Q�#Q�R�R�
����X�&�&�)�3�3��"�"�=�1�1�1�1�1�� � ��!2�!2�:�!>�!>�?�?�?�?�?r6c���|�d���}d|vrStjtg|�tjtjtjd���|���t
j|jtg|�R���}|�	d��dkr|�|��dS|�
|�	d����dS)	NFr�z--asyncT)rKrr}rr�r�r�)r�r�rr�rr�r�r�r�rormrvs   r7rVzCloudlinuxCli.cl_smart_advice�s����9�9�E�9�J�J����'�'���.�A��A���`j�`o�$.�O�$�
@�
@�
@�
@��"�"�$�$�$��
�=�4�=�1A�#T�O�#T�#T�#T�U�U�
����X�&�&�)�3�3��"�"�=�1�1�1�1�1�� � ��!2�!2�:�!>�!>�?�?�?�?�?r6c�,�|�d���}tj|jtg|�R���}|�d��dkr|�|��dS|�|�d����dSr�)r�r�r�r��CL_LINK_TO_CLN_CLIror�rmrvs   r7rWzCloudlinuxCli.cl_link_to_cln�s����9�9�E�9�J�J���
�=�4�=�1C�#V�o�#V�#V�#V�W�W�
����X�&�&�)�3�3��"�"�=�1�1�1�1�1�� � ��!2�!2�:�!>�!>�?�?�?�?�?r6c�,�|�d���}tj|jtg|�R���}|�d��dkr|�|��dS|�|�d����dS)z/
        Run commands for AccelerateWP
        Fr�r�r�r�N)r�r�r�r��AWP_INSTALLER_CLIror�rmrvs   r7rXzCloudlinuxCli.cl_awp_installer�s����9�9�E�9�J�J���
�=�4�=�1B�#U�_�#U�#U�#U�V�V�
����X�&�&�)�3�3��"�"�=�1�1�1�1�1�� � ��!2�!2�:�!>�!>�?�?�?�?�?r6c���	tdz}t|d��5}|������cddd��S#1swxYwYdS#YdSxYw)z8
        Get version of the AccelerateWP plugin
        �/versionr�N)r�r�r�r]�rY�version_filer�s   r7r�z$CloudlinuxCli.get_awp_plugin_version�s���	�*�Z�7�L��l�C�(�(�
(�A��v�v�x�x�~�~�'�'�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(�
(�
(��	��4�4����.�A�&A�A�A�A�A�A�A!c���	tdz}t|d��5}|������cddd��S#1swxYwYdS#YdSxYw)z1
        Get version of the X-Ray plugin
        r�r�N)�XRAY_PLUGIN_PATHr�r�r]r�s   r7r�z%CloudlinuxCli.get_xray_plugin_versions���	�+�j�8�L��l�C�(�(�
(�A��v�v�x�x�~�~�'�'�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(�
(�
(��	��4�4���r�)Ar#r$r%rr�r�r�r�r\rArnrHrDrErFrGrKrLr�rMr<r=rJrIrrtrpr�r r�r�r�r�r.r�r>rNrUr^�staticmethodrhrmrsrOr~r�r�r�r�r�r�r�rPr�r�rRrSrQrTrVrWrXr�r��
__classcell__)rZs@r7r9r9Qs���������I�@��M�N���1�O�-�H������:%�%�%�%�%�N���" � � �!�!�!�!�!�!�!�!�!�=�=�=����.���F�F�F����.���,
<�
<�
<����0���*�*�*� ���X�X�X�3�3�3�=�=�=� 	�	�	�	�	�	�������(���9�9�9�69�9�9�"9�9�9�����(�(��\�(�������@�@�@�"�"�"�
�
�
�&"�"�"�+�+�+�+�+�+�#�#�#�$�$�$�*�*�*�	5�	5�	5����B	�	�	�@�@�@�@�@�@�!�!�!�	@�	@�	@�@�@�@�@�@�@�	@�	@�	@�	�	�	�	�	�	�	�	�	�	r6r9)8�
__future__rrrr1r�r�rur�r��urllib.requestrr�r��cldetectlibr�clcommon.cpapirrr	r
�	libcagefsr�
libcloudlinuxr�clcommon.lib.jwt_tokenr
�clcommon.lib.cleditionrr�clcommon.constrrrrsr%rr�r�rurXr�r�r�r�r�rZr�r�r�r�r�r�rzrr9r5r6r7�<module>r�sH��&�%�%�%�%�%�������&�&�&�&�&�&�
�
�
�
�
�
�
�
�����	�	�	�	���������"�"�"�"�"�"�������������������������������+�+�+�+�+�+�2�2�2�2�2�2���������#�"�"�"�"�"�P�P�P�P�P�P�P�P�6��'�	�A��=��
,��&��4��F��E��6��.��/��7��-�
�G��/�
�8��4��/��K��.�.�.�.�.�.�.�.�&z
�z
�z
�z
�z
�%�z
�z
�z
�z
�z
r6
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg