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-38.pyc
U

y)�]m�@s�dZddlZddlZddlmZmZddlmZddlm	Z	ddl
mZmZddl
mZddlmZdd	lmZmZd
ddd
dddgZGdd�de�Zddd�Zddd�Zddd�ZdS)z%Deployment code for the sysinfo tool.�N)�	getLogger�	Formatter)�RotatingFileHandler)�
namedClass)�Deferred�
maybeDeferred)�VERSION)�BaseConfiguration)�SysInfoPluginRegistry�format_sysinfo�LoadZDiskZMemoryZTemperatureZ	ProcessesZ
LoggedInUsersZNetworkcsjeZdZdZeZdZe��dkr2eej	�
d�f7ZdZdZ�fdd�Z
�fd	d
�Zdd�Zd
d�Z�ZS)�SysInfoConfigurationz9Specialized configuration for the Landscape sysinfo tool.)z/etc/landscape/client.confrz~/.landscape/sysinfo.confz/var/lib/landscape/client/�sysinfocstt|���d|jd<dS)N�config)�superr
�__init__Z_command_line_defaults)�self��	__class__��>/usr/lib/python3/dist-packages/landscape/sysinfo/deployment.pyr szSysInfoConfiguration.__init__csBtt|���}|jdddd�|jdddd�dd�t�|_|S)	zg
        Specialize L{Configuration.make_parser}, adding any
        sysinfo-specific options.
        z--sysinfo-pluginsZPLUGIN_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_PLUGINSZepilog)r�parserrrrr%s��z SysInfoConfiguration.make_parsercCsdd�|�d�D�S)NcSsg|]}|���qSr)�strip��.0�xrrr�
<listcomp>9sz9SysInfoConfiguration.get_plugin_names.<locals>.<listcomp>�,)�split)rZplugin_specrrr�get_plugin_names8sz%SysInfoConfiguration.get_plugin_namescsX|jdkrt}n|�|j�}|jdkr,g�n|�|j���fdd�|D�}dd�|D�S)Ncsg|]}|�kr|�qSrrr��excluderrr"Dsz4SysInfoConfiguration.get_plugins.<locals>.<listcomp>cSs"g|]}td|��|f���qS)zlandscape.sysinfo.%s.%s)r�lower)r Zplugin_namerrrr"Es�
�)Zsysinfo_pluginsrr%Zexclude_sysinfo_plugins)r�include�pluginsrr&r�get_plugins;s

�z SysInfoConfiguration.get_plugins)�__name__�
__module__�__qualname__�__doc__r�versionZdefault_config_filenames�os�getuid�path�
expanduserZdefault_data_dirZconfig_sectionrrr%r+�
__classcell__rrrrr
s
�r
cCs*|dkr&t��dkrd}ntj�d�}|S)zs
    Work out the correct path to store logs in depending on the effective
    user id of the current process.
    Nrz/var/log/landscapez~/.landscape)r1r2r3r4)�
landscape_dirrrr�get_landscape_log_directoryJs
r7cCsdt|�}td�}d|_tj�|�s,t�|�tj�|d�}t|ddd�}|�	|�|�
td��dS)Nzlandscape-sysinfoFzsysinfo.logi��)ZmaxBytesZbackupCountz'%(asctime)s %(levelname)-8s %(message)s)r7r�	propagater1r3�isdir�mkdirrr�
addHandler�setFormatterr)r6�loggerZlog_filename�handlerrrr�
setup_loggingWs
�
r@c
s�z
t�Wn0tk
r:}zt�d|�W5d}~XYnX�dkrJt��t�}|j|dd�|��D]}��|�qf�fdd����fdd���dk	r�t	����
��fd	d
���fdd�}��|����n����S)
zQ
    @param reactor: The reactor to (optionally) run the sysinfo plugins in.
    zUnable to setup logging. %sNT)Z!accept_nonexistent_default_configcs$tt���������dd��dS)Nz  )�indent)�printrZget_headersZ	get_notesZ
get_footnotes��result)rrr�show_outputvs�zrun.<locals>.show_outputcs������S�N)�run�addCallbackr)rErrr�run_sysinfozszrun.<locals>.run_sysinfocst�����SrF)r�
chainDeferredr)�donerIrr�<lambda>��zrun.<locals>.<lambda>cs��d�j�|S)Nr)�	callLater�stoprC)�reactorrr�stop_reactor�szrun.<locals>.stop_reactor)
r@�IOError�sys�exitr
r
�loadr+�addr�callWhenRunning�addBothrG)�argsrPr�erZpluginrQr)rKrPrIrErrrGds,
 �

rG)N)N)NN)r/r1rS�loggingrrZlogging.handlersrZtwisted.python.reflectrZtwisted.internet.deferrrZ	landscaperZlandscape.lib.configr	Zlandscape.sysinfo.sysinfor
rrr
r7r@rGrrrr�<module>s"
�7