????

Your IP : 216.73.217.84


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

�

���iG�
����ddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZmZej
�ed��ZedzZd	aGd
�de��Zdd
�Zd�Zd�ZdS)�N)�minidom)�
ExpatError)�etree�)�
CONFIG_DIR�acquire_lockzve.cfgz.tmp�NNc� ��eZdZd�fd�	Z�xZS)�BadVeConfigException�Nothingc�P��t���d|����dS)Nz5Unable to parse /etc/container/ve.cfg file, message: )�super�__init__)�self�message�	__class__s  ��py/clveconfig/ve_config.pyrzBadVeConfigException.__init__s4���
�����M�G�M�M�	
�	
�	
�	
�	
�)r)�__name__�
__module__�__qualname__r�
__classcell__)rs@rrrs=�������
�
�
�
�
�
�
�
�
�
rrTc�d�tdkr	|rtSt��5	tjt��}|�d��d}n5#ttttf$r}td��|�d}~wwxYw|r||fa||fcddd��S#1swxYwYdS)z�
    Load xml config from ve.cfg
    1. setup lock on file
    2. read info
    3. remove lock
    :type use_cache: bool
    :rtype: tuple[xml.Document, xml.Element]
    :raises: BadVeConfigException, LockFailedException
    r	�	lveconfigrzbad ve.cfg fileN)�PARSED_XML_CACHEr�xml�parse�VE_CFG_PATH�getElementsByTagName�OSError�IOErrorr�
IndexErrorr)�	use_cache�_ve_cfg�
_ve_lveconfig�es    r�get_xml_configr'"s���=�(�(�Y�(���	���	&�	&�	A��i��,�,�G�#�8�8��E�E�a�H�M�M����*�j�9�	A�	A�	A�&�'8�9�9�q�@�����	A�����	6�&�
�5���
�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&s4�B%�4A�B%�B�7B�B�B%�%B)�,B)c��t��5	tjt��}|���cddd��S#tj$r"}t
t|����|�d}~wwxYw#1swxYwYdS)z�
    This method works same as get_xml_config,
    but returns etree object
    :rtype: etree.ElementTree
    :raises: BadVeConfigException, LockFailedException
    N)rrrr�getroot�
ParseErrorr�str)�treer&s  r�get_xml_config_etreer->s���
���6�6�	6��;�{�+�+�D��<�<�>�>�6�6�6�6�6�6�6�6����	6�	6�	6�&�s�1�v�v�.�.�A�5�����	6����	6�6�6�6����6�6�6�6�6�6s.�A>�,A
�
A;�A6�6A;�;A>�>B�Bc�X�|�d��d}||fa|�ddd���}|�dd���dd��}t	j|��}|�d�	��}|st
d
t�����ttd��5}|�
|��|���tj
|�����ddd��n#1swxYwYtjtt��	t!jt jdtj������dS#t&$r)}t)d
|��t*j���Yd}~dSd}~wwxYw)Nrrzutf-8�)�encoding�indent�newl�
r�	)r0z Rejected attempt to write empty �wbzve.cfg updated by euid=z ve.cfg audit-log syslog failed: )�file)rr�toprettyxml�replacer�parseString�RuntimeErrorr�open�VE_CFG_PATH_TMP�write�flush�os�fsync�fileno�rename�syslog�
LOG_NOTICE�geteuidr �print�sys�stderr)�xml_documentr%�
xml_string�new_xml�buf�fr&s       r�save_xmlrNNs���!�5�5�k�B�B�1�E�M�$�m�5���)�)�7�2�B�)�O�O�J��#�#�E�3�/�/�7�7��s�C�C�J��o�j�)�)�G�
�
�
�w�
�
/�
/�C��M��K�k�K�K�L�L�L�	
�o�t�	$�	$���	�������	���	�	�	�
�����������������������������I�o�{�+�+�+�G��
�f�'�?�����?�?�	A�	A�	A�	A�	A���G�G�G�
�4��4�4�3�:�F�F�F�F�F�F�F�F�F�F�����G���s+�:AD�D�D�3E6�6
F)�F$�$F))T)r?rGrC�xml.domrr�xml.parsers.expatr�lxmlr�ve_lockrr�path�joinrr<r�	Exceptionrr'r-rN�rr�<module>rWs��
�	�	�	�
�
�
�
�
�
�
�
�"�"�"�"�"�"�(�(�(�(�(�(�������-�-�-�-�-�-�-�-��g�l�l�:�x�0�0����&��!��
�
�
�
�
�9�
�
�
�&�&�&�&�8
6�
6�
6� G�G�G�G�Gr