HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/landscape/sysinfo/__pycache__/deployment.cpython-312.pyc
�

y)�]m���dZddlZddlZddlmZmZddlmZddlm	Z	ddl
mZmZddl
mZddlmZdd	lmZmZgd
�ZGd�de�Zdd
�Zdd�Zdd�Zy)z%Deployment code for the sysinfo tool.�N)�	getLogger�	Formatter)�RotatingFileHandler)�
namedClass)�Deferred�
maybeDeferred)�VERSION)�BaseConfiguration)�SysInfoPluginRegistry�format_sysinfo)�Load�Disk�Memory�Temperature�	Processes�
LoggedInUsers�Networkc���eZdZdZeZdZej�dk7reejjd�fz
ZdZdZ�fd�Z
�fd�Zd	�Zd
�Z�xZS)�SysInfoConfigurationz9Specialized configuration for the Landscape sysinfo tool.)z/etc/landscape/client.confrz~/.landscape/sysinfo.confz/var/lib/landscape/client/�sysinfoc�H��tt|��d|jd<y)N�config)�superr�__init__�_command_line_defaults)�self�	__class__s ��>/usr/lib/python3/dist-packages/landscape/sysinfo/deployment.pyrzSysInfoConfiguration.__init__ s!���
�"�D�2�4�04��#�#�H�-�c���tt|��}|jddd��|jddd��ddj	t
�z|_|S)	zg
        Specialize L{Configuration.make_parser}, adding any
        sysinfo-specific options.
        z--sysinfo-plugins�PLUGIN_LISTzNComma-delimited list of sysinfo plugins to use. Default is to use all plugins.)�metavar�helpz--exclude-sysinfo-pluginszhComma-delimited list of sysinfo plugins to NOT use. This always take precedence over plugins to include.zDefault plugins: %sz, )rr�make_parser�
add_option�join�ALL_PLUGINS�epilog)r�parserrs  �rr$z SysInfoConfiguration.make_parser%so���
�+�T�>�@�����-�}� E�	�	F�	���5�}� 5�	�	6�
.����;�1G�H��
��
rc�f�|jd�D�cgc]}|j���c}Scc}w)N�,)�split�strip)r�plugin_spec�xs   r�get_plugin_namesz%SysInfoConfiguration.get_plugin_names8s-��#.�#4�#4�S�#9�:�#9�a����	�#9�:�:��:s�.c
�R�|j�t}n|j|j�}|j�g}n|j|j�}|D�cgc]	}||vs�|��}}|D�cgc]&}t	d|j��d|������(c}Scc}wcc}w)Nzlandscape.sysinfo.�.)�sysinfo_pluginsr'r0�exclude_sysinfo_pluginsr�lower)r�include�excluder/�plugins�plugin_names      r�get_pluginsz SysInfoConfiguration.get_plugins;s������'�!�G��+�+�D�,@�,@�A�G��'�'�/��G��+�+�D�,H�,H�I�G�%�:�g���'�)9�1�g��:�$+�,�#*�K�A�
�)�/�/�1�;�@�A�C�#*�,�	,��;��,s�	B�'B�1+B$)�__name__�
__module__�__qualname__�__doc__r	�version�default_config_filenames�os�getuid�path�
expanduser�default_data_dir�config_sectionrr$r0r:�
__classcell__)rs@rrrsc���C��G�>���r�y�y�{�a�� ��G�G���:�;�%>�	>� �3���N�5�
�&;�,rrc�~�|�:tj�dk(rd}|Stjjd�}|S)zs
    Work out the correct path to store logs in depending on the effective
    user id of the current process.
    rz/var/log/landscapez~/.landscape)rArBrCrD)�
landscape_dirs r�get_landscape_log_directoryrJJsA��
��
�9�9�;�!��0�M����G�G�.�.�~�>�M��rc�X�t|�}td�}d|_tjj|�stj|�tjj|d�}t|dd��}|j|�|jtd��y)Nzlandscape-sysinfoFzsysinfo.logi��)�maxBytes�backupCountz'%(asctime)s %(levelname)-8s %(message)s)rJr�	propagaterArC�isdir�mkdirr&r�
addHandler�setFormatterr)rI�logger�log_filename�handlers    r�
setup_loggingrWWs���/�
�>�M�
�*�
+�F��F��
�7�7�=�=��'�
������7�7�<�<�
�}�=�L�!�,�+5�1�F�G�
���g������#L�M�Nrc�������	�	t���
t	��t�}|j
|d��|j�D]}�j|���fd��	�	�fd����Gt���j��fd���fd�}�j|��j��S����S#t$r"}tjd|z�Yd}~��d}~wwxYw)	zQ
    @param reactor: The reactor to (optionally) run the sysinfo plugins in.
    zUnable to setup logging. %sNT)�!accept_nonexistent_default_configc���tt�j��j��j	�d���y)Nz  )�indent)�printr�get_headers�	get_notes�
get_footnotes)�resultrs �r�show_outputzrun.<locals>.show_outputvs8���
�n�W�0�0�2�G�4E�4E�4G�$�2�2�4�T�C�	Drc�B���j�j��S�N)�run�addCallback)rars��r�run_sysinfozrun.<locals>.run_sysinfozs����{�{�}�(�(��5�5rc�8��t��j��Src)r�
chainDeferred)�donerfs��r�<lambda>zrun.<locals>.<lambda>�s���M�+�.�<�<�T�Brc�@���jd�j�|S)Nr)�	callLater�stop)r`�reactors �r�stop_reactorzrun.<locals>.stop_reactor�s���
���a����.��Mr)
rW�IOError�sys�exitrr�loadr:�addr�callWhenRunning�addBothrd)
�argsrnr�er�pluginrorirfras
 ``    @@@rrdrdds����4�����'�)��
!�
#�F��K�K���K�=��$�$�&�����F��'�D�6����z�����B�	D�	�	
���\�"����
��K��}���K��K�4����.��2�3�3��4�s�
B=�=	C(�C#�#C(rc)NN)r>rArq�loggingrr�logging.handlersr�twisted.python.reflectr�twisted.internet.deferrr�	landscaper	�landscape.lib.configr
�landscape.sysinfo.sysinforrr'rrJrWrd�rr�<module>r�sH��+�	�
�(�0�-�:��2�K�+��4,�,�4,�n
�
O�+r