HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/landscape/sysinfo/__pycache__/deployment.cpython-38.pyc
U

���cm�@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_sysinfoZLoadZDiskZMemoryZTemperatureZ	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_parserZ
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�Zexcluderrr Dsz4SysInfoConfiguration.get_plugins.<locals>.<listcomp>cSs"g|]}td|��|f���qS)zlandscape.sysinfo.%s.%s)r�lower)rZplugin_namerrrr Es�
�)Zsysinfo_pluginsrr#Zexclude_sysinfo_plugins)rZincludeZpluginsrr$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)r,r-r.r/)�
landscape_dirrrr�get_landscape_log_directoryJs
r2cCsdt|�}td�}d|_tj�|�s,t�|�tj�|d�}t|ddd�}|�	|�|�
td��dS)Nzlandscape-sysinfoFzsysinfo.logi��)ZmaxBytesZbackupCountz'%(asctime)s %(levelname)-8s %(message)s)r2rZ	propagater,r.�isdir�mkdirrrZ
addHandlerZsetFormatterr)r1ZloggerZlog_filenameZhandlerrrr�
setup_loggingWs
�
r6c
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)r
rr�show_outputvs�zrun.<locals>.show_outputcs������S�N)�runZaddCallbackr)r;r
rr�run_sysinfozszrun.<locals>.run_sysinfocst�����Sr<)rZ
chainDeferredr)�doner>rr�<lambda>��zrun.<locals>.<lambda>cs��d�j�|S)Nr)Z	callLater�stopr9)�reactorrr�stop_reactor�szrun.<locals>.stop_reactor)
r6�IOError�sys�exitr
r�loadr&�addrZcallWhenRunningZaddBothr=)�argsrCr
�erZpluginrDr)r?rCr>r;r
rr=ds,
 �

r=)N)N)NN)r*r,rFZloggingrrZlogging.handlersrZtwisted.python.reflectrZtwisted.internet.deferrrZ	landscaperZlandscape.lib.configr	Zlandscape.sysinfo.sysinfor
rrrr2r6r=rrrr�<module>s"
�7