관리-도구
편집 파일: limits.cpython-311.opt-1.pyc
� &q�a8�*� �` � d Z ddlmZ ddlmZ ddlZn # e$ r dZY nw xY wd� Zd� Zd� Z d � Z dS ) z2Kernel-side LVP/LVE operations via pylve bindings.� )�PyLve� )�LvdErrorNc �� � t �t d� � �t t � � } | � � � | � � � st d� � �| S )z'Initialize and return a PyLve instance.Nzpylve module not availablezDkernel does not support per-domain limits (requires lve_lvp_create2))�pylver r � initialize�domains_supported)�pys �py/websiteisolation/limits.py� get_pylver s^ � ��}��3�4�4�4� �u���B��M�M�O�O�O� ���!�!� 5�� 4� 5� 5� 5� �I� c �Z � | � � � }d|v rt |d � � |_ d|v rt |d � � |_ d|v rt |d � � |_ d|v rt |d � � |_ d|v rt |d � � |_ |S )z*Create liblve_settings from a limits dict.�cpu�pmem�io�nproc�iops)�liblve_settings�int�ls_cpu� ls_memory_phy�ls_io�ls_nproc�ls_iops)r �limits�settingss r �settings_from_limitsr s� � ��!�!�#�#�H������f�U�m�,�,��� ����!$�V�F�^�!4�!4����v�~�~��V�D�\�*�*����&�����w��0�0��� �����v�f�~�.�.����Or c �D � | j | j | j | j | j d�S )z2Convert liblve_settings to a dict of limit fields.)r r r r r )r r r r r )r s r �settings_to_dictr . s/ � � ���&��n��"�� �� � r c �0 � t j | |� � }|S )z�Call pylve.lve_lvp_setup directly, bypassing the lveapi wrapper. The lveapi wrapper iterates /proc/lve/resellers/ which doesn't exist for nested domain LVPs (they are leaf containers).)r � lve_lvp_setup)� domain_idr �rcs r �lvp_setup_directr$ 9 s � � � �Y�� 1� 1�B� �Ir )�__doc__�lve_utils.pylve_wrapperr � exceptionsr r �ImportErrorr r r r$ � r r �<module>r* s� �� 9� 8� )� )� )� )� )� )� � � � � � ���L�L�L�L��� � � ��E�E�E����� � � � � � � � � �� � � � s � ��