slurm配置文件的linter
slurmlint的Python项目详细描述
一个简单的slurm配置文件linter
目的
根据我的经验,在泥浆配置中很容易犯小错误。 文件,错误地列出群集中的节点,或未能分配节点 到分区,等等。这个包提供了一个简单的命令来检查 适合用于自动化部署管理的slurm文件。
此外,还提供了python api,允许检查任意字符串 文本的。实用程序函数,例如解释slurm样式的主机名列表 也给出了。
用法
slurmlint
命令将slurm配置文件作为参数
并返回包含错误的简单报告(如果有)。如果有错误
则返回代码为1,否则为0。
$ slurmlint slurm.conf
753 compute nodes configured
Errors detected:
Line 126 - Duplicate node definition: ng1031, ng908, ng909, ...
Line 127 - Duplicate node definition: ng1031
Line 128 - Duplicate node definition: ng908, ng909, ng910
Line 131 - Defined node has no partition: ng1259
Line 131 - Duplicate node definition: ng1256
限制
此实用程序无法完全理解slurm配置的语法 不保证配置文件的有效性。仅此而已 有助于发现某些简单的错误。
主机名列表
对于主机名列表,这个linter应用比slurm更严格的规则。 根据,主机名必须是有效的主机名 RFC-1123,即它们可能包含 a-z,0-9,点和减号,最多253个ascii字符,并且必须 由1-63个字符的“标签”组成,用点连接。
主机名可以在列表中用逗号分隔。
标准(?)??)括号规则适用。如果列表项使用方括号
要表示某些数值范围或逗号分隔列表,必须有
主机名末尾的括号。一个也可以有一个括号范围
主机名中的其他位置,前提是末尾有括号。
方括号可以包含由逗号分隔的有效非负整数,或者
范围,如1-8
。范围内的前导零表示固定宽度,即。
001-020
。
注意,这个linter不使用slurm解析器,它将导致 如果允许的主机名范围仍然导致 警告。