%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3/dist-packages/landscape/lib/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3/dist-packages/landscape/lib/__pycache__/sysstats.cpython-312.pyc

�

�~�e�����ddlZddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZGd�de�Z
Gd�d	�Zd
�Zdd�Zdd�ZGd
�d�ZGd�d�ZGd�d�ZGd�d�Zy)�N)�datetime)�getProcessOutputAndValue)�
encode_values)�to_timestampc��eZdZdZy)�CommandErrorz:Raised when an external command returns a non-zero status.N)�__name__�
__module__�__qualname__�__doc__���8/usr/lib/python3/dist-packages/landscape/lib/sysstats.pyrr
s��Drrc�t�eZdZd	d�Zed��Zed��Zed��Zed��Zed��Z	ed��Z
y)
�MemoryStatsc�$�i}t|�D]@}d|vs�|jdd�\}}|dvs�"t|j�d�||<�B|ddz|_|d|dz|d	zdz|_|d
dz|_|ddz|_y)N�:�)�MemTotal�SwapFree�	SwapTotal�MemFree�Buffers�Cachedrrirrrrr)�open�split�int�total_memory�free_memory�
total_swap�	free_swap)�self�filename�data�line�key�values      r�__init__zMemoryStats.__init__s�������N�	6�D��d�{�!�Z�Z��Q�/�
��U����!$�E�K�K�M�!�$4� 5�D��I�	6�!��,��4�����O�d�9�o�-��X��>�
�����{�+�t�3����j�)�T�1��rc�4�|j|jz
S�N)rr�r"s r�used_memoryzMemoryStats.used_memory(s��� � �4�#3�#3�3�3rc�4�|j|jz
Sr*)r r!r+s r�	used_swapzMemoryStats.used_swap,s��������/�/rc�L�|jt|j�zdzS�N�d)r�floatrr+s r�free_memory_percentagez"MemoryStats.free_memory_percentage0s#��� � �5��):�):�#;�;�s�B�Brc�l�|jdk(ry|jt|j�zdzS�Nrgr1)r r!r2r+s r�free_swap_percentagez MemoryStats.free_swap_percentage4s.���?�?�a����N�N�U�4�?�?�%;�;�s�B�Brc� �d|jz
Sr0)r3r+s r�used_memory_percentagez"MemoryStats.used_memory_percentage;s���T�0�0�0�0rc�@�|jdk(ryd|jz
Sr5)r r6r+s r�used_swap_percentagez MemoryStats.used_swap_percentage?s"���?�?�a�����2�2�2�2rN)z
/proc/meminfo)r	r
rr(�propertyr,r.r3r6r8r:r
rrrrs���2�,�4��4��0��0��C��C��C��C��1��1��3��3rrc�z�ttj�}tddg|��}d�}|j	|�S)N�whoz-q)�envc���|\}}}|dk7rt|jd���|jdd�d}|jd�}tt	|j���S)Nr�ascii�
r)r�decoder�sorted�set)�args�stdout_data�stderr_data�status�
first_lines     r�parse_outputz)get_logged_in_users.<locals>.parse_outputKsk��+/�(��[�&��Q�;��{�1�1�'�:�;�;� �&�&�u�a�0��3�
��&�&�w�/�
��c�*�*�*�,�-�.�.r)r�os�environr�addCallback)rL�resultrJs   r�get_logged_in_usersrOGs8���B�J�J�'�G�
%�e�d�V��
A�F�/����l�+�+rc��t|d�5}|j�}ddd�j�\}}t|�S#1swY�'xYw)z�
    This parses a file in /proc/uptime format and returns a floating point
    version of the first value (the actual uptime).
    �rN)r�readlinerr2)�uptime_file�ufiler$�up�idles     r�
get_uptimerWVsJ��

�k�3�	� �5��~�~��� ��z�z�|�H�B����9�� � �s�A�A
c#�K�|�Ftjjd�rd}n$tjjd�rd}nd}tt	j|��D]}t|����y�w)Nz/sys/class/hwmonz/sys/class/hwmon/*/temp*_inputz/sys/class/thermalz/sys/class/thermal/*/tempz%/proc/acpi/thermal_zone/*/temperature)rK�path�isdirrC�glob�ThermalZone)�thermal_zone_path�temperature_paths  r�get_thermal_zonesr_ask����� �
�7�7�=�=�+�,� @��
�W�W�]�]�/�
0� ;�� G��"�4�9�9�->�#?�@�,���*�+�+�,�s�A:A<c��eZdZdZdZdZd�Zy)r\Nc���tjj|�|_tjj|j�|_	t|�5}tjj|�dk(rg|D]a}|j
d�s�|ddj�|_|jj�\}}t|�|_||_nenc|j�}t|j��dz|_d|_dj|j|j�|_ddd�y#1swYyxYw#tt f$rYywxYw)N�temperatureztemperature:�g@�@�Cz	{:.1f} {})rKrY�dirname�basename�namer�
startswith�striprbrr�temperature_value�temperature_unitrR�format�
ValueError�OSError)r"r^�fr%r'�units      rr(zThermalZone.__init__ss7���G�G�O�O�$4�5��	��G�G�$�$�T�Y�Y�/��	�	��&�'�
�1��7�7�#�#�$4�5��F� !�"���?�?�>�:�/3�B�C�y���/@�D�,�*.�*:�*:�*@�*@�*B�K�E�4�58��Z�D�2�48�D�1�!�
"��:�:�<�D�-0�����->��-G�D�*�,/�D�)�'2�'9�'9��.�.��-�-�(�D�$�
�
�
��"�G�$�	��	�s7�E!�9E�B3E�E!�E�E!�E!�!E3�2E3)r	r
rrbrjrkr(r
rrr\r\ms���K�����rr\c� �eZdZdZdZd�Zd�Zy)�	LoginInfoz=Information about a login session gathered from wtmp or utmp.�hi32s4s32s256shhiiiiiii20sc��tj|j|�}|d|_|d|_|j|d�|_|j|d�|_|j|d�|_|j|d�|_	|d|_
|d|_|d	|_tj|d
�|_|d|_y)Nrr��������	�)�struct�unpack�
RAW_FORMAT�
login_type�pid�_strip_and_decode�
tty_device�id�username�hostname�termination_status�exit_status�
session_idr�utcfromtimestamp�
entry_time�remote_ip_address)r"�raw_data�infos   rr(zLoginInfo.__init__�s����}�}�T�_�_�h�7���q�'�����7����0�0��a��9����(�(��a��1����.�.�t�A�w�7��
��.�.�t�A�w�7��
�"&�q�'�����7����q�'���"�3�3�D��G�<���!%�b���rc�B�|jd�jd�S)z>Helper method to strip b"" and return a utf-8 decoded string.�zutf-8)rirB)r"�
bytestrings  rr�zLoginInfo._strip_and_decode�s������&�-�-�g�6�6rN)r	r
rrr�r(r�r
rrrrrr�s��G�.�J�
*�7rrrc�"�eZdZdZd�Zd�Zd�Zy)�LoginInfoReaderzwReader parses C{/var/log/wtmp} and/or C{/var/run/utmp} files.

    @file: Initialize the reader with an open file.
    c�b�||_tjtj�|_yr*)�_filer~�calcsizerrr��_struct_length)r"�files  rr(zLoginInfoReader.__init__�s ����
�$�o�o�i�.B�.B�C��rc#�<K�	|j�}|sy|����w)z2Returns a generator that yields LoginInfo objects.N)�	read_next)r"r�s  r�
login_infozLoginInfoReader.login_info�s%������>�>�#�D����J�
�s�c��|jj|j�}|r#t|�|jk(rt	|�Sy)z9Returns login data or None if no login data is available.N)r��readr��lenrr)r"r$s  rr�zLoginInfoReader.read_next�s;���z�z���t�2�2�3���C��I��!4�!4�4��T�?�"�rN)r	r
rrr(r�r�r
rrr�r��s���
D��rr�c�.�eZdZdZdZ			dd�Zd�Zd�Zy)�	BootTimesNc�.�||_||_||_yr*)�	_filename�_boots_newer_than�_shutdowns_newer_than)r"r#�boots_newer_than�shutdowns_newer_thans    rr(zBootTimes.__init__�s��"���!1���%9��"rc�4�g}g}t|jd�5}t|�}|j|_|j
|_|j�D]�}|jjd�s�t|j�}|jdk(r(||jkDr|j|�||_�k|jdk(s�{||jkDs��|j|�||_��	ddd�||fS#1swY||fSxYw)N�rb�~�reboot�shutdown)rr�r�r��
_last_bootr��_last_shutdownr�r�rhrr�r��append)r"�reboot_times�shutdown_times�login_info_file�readerr��	timestamps       r�	get_timeszBootTimes.get_times�s������
�$�.�.�$�
'�	8�?�$�_�5�F�"�4�4�D�O�"&�"<�"<�D���)�)�+�
8���?�?�-�-�c�2� ,�T�_�_� =�I��
�
��1�%����7�$�+�+�I�6�*3����
�
��3�%��(;�(;�;�&�-�-�i�8�.7��+�
8�	8�(�^�+�+�)	8�(�^�+�+�s�AD�8AD�D�$D�Dc��|j�-ttj�t�z
�|_|jSr*)r�r�timerWr+s r�get_last_boot_timezBootTimes.get_last_boot_time�s/���?�?�"�!�$�)�)�+�
��"<�=�D�O����r)z
/var/log/wtmprr)r	r
rr�r�r(r�r�r
rrr�r��s&���J��N�!���	:�,�2rr�)z/proc/uptimer*)r[�os.pathrKr~r�r�twisted.internet.utilsr�landscape.lib.encodingr�landscape.lib.timestampr�	ExceptionrrrOrWr_r\rrr�r�r
rr�<module>r�sm����
���;�0�0�E�9�E�33�33�l,��	,���>7�7�<��<*�*r

Zerion Mini Shell 1.0