Sindbad~EG File Manager
3
�f � @ 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 n6 t k
�rF } z| j
d)||f � W Y d(d(}~X nX | jd*��sd| 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 %s: %sZall_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% sn
zSlurm.setupc C s` ddg}ddg}ddj |� }d}d}x4|D ],}| j|� d �||� | j|� d
�||� q,W d S )Nz
/etc/slurmz/var/run/slurm/confZAccountingStoragePassZJobCompPassz(^\s*(%s)\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
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists