a >h@s8ddlmZmZmZddlmZGdddeeeZdS))Plugin UbuntuPlugin RedHatPlugin) is_executablec@s0eZdZdZdZdZdZdZddZdd Z d S) SlurmzSlurm Workload Managerslurm)Zhpc)z slurm-wlmslurmdslurmdbd slurmctldrzslurm-slurmctldz slurm-slurmdzslurm-slurmdbd)rr r c Csz|ddgtdr$|ddgtdr8|dggd}td r\|d d |Dd }||snd }d}d}zt|dddj}|D]L}|sq|d}|ddkr|d}|ddkr|d}qWdn1s0YWn<t y>}z"| d|d|WYd}~n d}~00| ds\|||gn||d|dgdS)z Slurm Workload Manager z/etc/slurm/*.confz/var/run/slurm/conf/*.confZsinfoz!sinfo --all --list-reasons --longzsinfo --all --longZsqueuezsqueue --all --long)aliasesZ assoc_mgrZbbstatZ burstBufferZconfigZdaemonsZdwstatZ federationZfrontendZjobZlicensesZnode partitionZ reservationrstepZtopologyZscontrolcSsg|]}d|qS)zscontrol show ).0irrOzSlurm.setup..z/etc/slurm/slurm.confz/var/run/slurm/conf/slurm.confz/var/log/slurmd.logz/var/log/slurmctld.logrzUTF-8)encoding=rZ SlurmdLogFileZSlurmctldLogFileNzCould not open conf file z: Zall_logs*) Z add_copy_specrZadd_cmd_outputZ path_existsopenread splitlinessplitstripIOErrorZ _log_errorZ get_option) selfZ scontrol_cmdsZ config_fileZslurmd_log_fileZslurmctld_log_filecfilelinewordserrorrrrsetup%s\    0  z Slurm.setupcCs`ddg}ddg}dd|d}d}d }|D],}||d ||||d ||q.dS) Nz /etc/slurmz/var/run/slurm/confZAccountingStoragePassZ JobCompPassz(^\s*(|z )\s*=\s*)(.*)z(^\s*(StoragePass)\s*=\s*)(.*)z \1********z /slurm.confz/slurmdbd.conf)joinZ do_file_sub)rZ conf_pathsZ slurm_keysZslurm_keys_regexZslurmdbd_key_regexsubZ conf_pathrrrpostprocss$zSlurm.postprocN) __name__ __module__ __qualname__Z short_descZ plugin_nameZprofilesZpackagesZservicesr$r(rrrrr s NrN)Zsos.report.pluginsrrrZ sos.utilitiesrrrrrr s