File: //lib/python3.6/site-packages/sos/report/plugins/__pycache__/slurm.cpython-36.pyc
3
-�_g � @ s8 d dl mZmZmZ d dlmZ G dd� deee�ZdS )� )�Plugin�UbuntuPlugin�RedHatPlugin)�
is_executablec @ s0 e Zd ZdZdZdZdZdZdd� Zd
d� Z dS )�SlurmzSlurm Workload Manager�slurm�hpc� slurm-wlm�slurmd�slurmdbd� slurmctld�slurm-slurmctld�slurm-slurmd�slurm-slurmdbdc C s� | j ddg� td�r$| jddg� td�r8| jdg� dd d
ddd
dddddddddddg}td�rz| jdd� |D �� d}| j|�s�d}d}d}y|t|d d!d"��d}x\|j� j� D ]L}|s�q�|jd#�}|d$ j� d%kr�|d& j� }|d$ j� d'kr�|d& j� }q�W W d(Q R X W n: t k
�rJ } z| j
d)|� d*|� �� W Y d(d(}~X nX | jd+��sh| j ||g� n| j |� d,�|� d,�g� d(S )-z Slurm Workload Manager
z/etc/slurm/*.confz/var/run/slurm/conf/*.confZsinfoz!sinfo --all --list-reasons --longzsinfo --all --longZsqueuezsqueue --all --long�aliasesZ assoc_mgrZbbstatZburstBuffer�configZdaemonsZdwstatZ
federationZfrontendZjobZlicensesZnode� partitionZreservationr
�stepZtopologyZscontrolc S s g | ]}d |� ��qS )zscontrol show � )�.0�ir r �/usr/lib/python3.6/slurm.py�
<listcomp>O s zSlurm.setup.<locals>.<listcomp>z/etc/slurm/slurm.confz/var/run/slurm/conf/slurm.confz/var/log/slurmd.logz/var/log/slurmctld.log�rzUTF-8)�encoding�=r Z
SlurmdLogFile� ZSlurmctldLogFileNzCould not open conf file z: Zall_logs�*)Z
add_copy_specr Zadd_cmd_outputZpath_exists�open�read�
splitlines�split�strip�IOErrorZ
_log_errorZ
get_option) �selfZ
scontrol_cmdsZconfig_fileZslurmd_log_fileZslurmctld_log_file�cfile�lineZwords�errorr r r �setup% sl
(
zSlurm.setupc C sd ddg}ddg}ddj |�� d�}d}d }x4|D ],}| j|� d
�||� | j|� d�||� q0W d S )Nz
/etc/slurmz/var/run/slurm/confZAccountingStoragePassZJobCompPassz(^\s*(�|z
)\s*=\s*)(.*)z(^\s*(StoragePass)\s*=\s*)(.*)z
\1********z/slurm.confz/slurmdbd.conf)�joinZdo_file_sub)r$ Z
conf_pathsZ
slurm_keysZslurm_keys_regexZslurmdbd_key_regex�subZ conf_pathr r r �postprocs s
zSlurm.postprocN)r )r r
r r r r
r r )r
r r )
�__name__�
__module__�__qualname__Z
short_descZplugin_nameZprofilesZpackagesZservicesr( r, r r r r r
s Nr N)Zsos.report.pluginsr r r Z
sos.utilitiesr r r r r r �<module> s