{ "info": { "author": "Eric Appelt", "author_email": "eric.appelt@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "Intended Audience :: System Administrators", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Topic :: System :: Systems Administration" ], "description": "\n![Travis CI Status](https://travis-ci.org/appeltel/slurmlint.svg?branch=master)\n![python 3.5, 3.6, 3.7](https://img.shields.io/badge/python-3.5%2C%203.6%2C%203.7-brightgreen.svg)\n\n# A Simple linter for Slurm Config Files\n\n## Purpose\n\nIn my experience it is very easy to make small errors in slurm configuration\nfiles, incorrectly listing nodes in the cluster, or failing to assign nodes\nto partitions, and so on. This package provides a simple command to check\nslurm files that is suitable for use in automated deployment management.\n\nIn addition, a python API is provided allowing checking arbitrary strings\nof text. Utility functions such as explanding slurm-style hostname lists\nare also given.\n\n## Usage\n\nThe `slurmlint` command takes a slurm configuration file as an argument\nand returns a simple report with errors (if any). If there were errors\nthen the return code is 1, otherwise 0.\n\n```\n$ slurmlint slurm.conf\n753 compute nodes configured\n\nErrors detected:\nLine 126 - Duplicate node definition: ng1031, ng908, ng909, ...\nLine 127 - Duplicate node definition: ng1031\nLine 128 - Duplicate node definition: ng908, ng909, ng910\nLine 131 - Defined node has no partition: ng1259\nLine 131 - Duplicate node definition: ng1256\n```\n\n## Limitations\n\nThis utility does not fully understand the grammar of slurm configuration\nfiles and does not guarantee the validity of a configuration file. It only\nserves to help find certain kinds of simple errors. \n\n## Hostname Lists\n\nThis linter applies stricter rules than Slurm for lists of hostnames.\nHostnames must be valid hostnames according to\n[RFC-1123](https://tools.ietf.org/html/rfc1123), that is they may contain\na-z, 0-9, dot, and the minus sign, at most 253 ASCII characters, and must\nbe comprised of \"labels\" from 1-63 characters connected by dots.\n\nHostnames can be separated by commas in a list.\n\nThe standard (???) rules for brackets apply. If a list entry uses brackets\nto denote some numerical range or comma separated list, there must be\nbrackets at the end of the hostname. One can also have a bracketed range\nsomewhere else in the hostname provided that there are brackets at the end.\nBrackets may contain valid non-negative integers separated by commas, or\nranges such as `1-8`. A leading zero in a range denotes a fixed width, i.e.\n`001-020`.\n\nNote that this linter does not use the slurm parser and will result in\n\"false positive\" warnings where allowed hostname ranges still result in\nwarnings.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/appeltel/slurmlint", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "slurmlint", "package_url": "https://pypi.org/project/slurmlint/", "platform": "", "project_url": "https://pypi.org/project/slurmlint/", "project_urls": { "Homepage": "https://github.com/appeltel/slurmlint" }, "release_url": "https://pypi.org/project/slurmlint/0.0.3/", "requires_dist": null, "requires_python": "", "summary": "Linter for Slurm configuration files", "version": "0.0.3" }, "last_serial": 4998204, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "5d77351f3d65128bbc0852ff4e25e097", "sha256": "0ef8b0fd93b64594b1c0d52eea236480100f35cad74d50d39f2fa4489549600b" }, "downloads": -1, "filename": "slurmlint-0.0.1-py3-none-any.whl", "has_sig": true, "md5_digest": "5d77351f3d65128bbc0852ff4e25e097", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9252, "upload_time": "2019-03-11T01:23:26", "url": "https://files.pythonhosted.org/packages/cd/8b/f0daaf4cc34dd6c2729b92517f6f80c27e4f481c2baec1891491dc252ab4/slurmlint-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c703e43e96fe757b11edc97c6026b78e", "sha256": "8736231d0bb1e601bd27b8edf9deb90c727f9146571072f397338715cbbd0e3a" }, "downloads": -1, "filename": "slurmlint-0.0.1.tar.gz", "has_sig": true, "md5_digest": "c703e43e96fe757b11edc97c6026b78e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8057, "upload_time": "2019-03-11T01:23:28", "url": "https://files.pythonhosted.org/packages/0d/e7/00ab4ad2c35483fd66bd2619176dc36354658f3bc6b211440be4c441c0b3/slurmlint-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "1de30a453b14c475530439870469eee3", "sha256": "e99b1cfa49c31a33b784c45e88748b6eeb737253d78b0511610123304f6ceaa6" }, "downloads": -1, "filename": "slurmlint-0.0.2-py3-none-any.whl", "has_sig": true, "md5_digest": "1de30a453b14c475530439870469eee3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9277, "upload_time": "2019-03-11T01:27:26", "url": "https://files.pythonhosted.org/packages/ee/d0/7181f4ecc94728ac54c5d1bdab6cda5a89852e733b81feaf4141eb2755e8/slurmlint-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4b340f7bef2d3c97fd3edfa84ca3f63", "sha256": "bbb772cc8b825f772753122e30a9d8f3af9e6ae16de10af33cedadeca2d82f25" }, "downloads": -1, "filename": "slurmlint-0.0.2.tar.gz", "has_sig": true, "md5_digest": "a4b340f7bef2d3c97fd3edfa84ca3f63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8110, "upload_time": "2019-03-11T01:27:28", "url": "https://files.pythonhosted.org/packages/4b/7c/eb913d7a8e6c650934c057b6036e148ceaa75d306e2cf722630c2fe43d50/slurmlint-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "8cc9bfc9b71616e7dc5aa391d91e33da", "sha256": "a6d3557228086362e5884ece9c9461268af7f4605fb2c4ef005954acbe81bbc5" }, "downloads": -1, "filename": "slurmlint-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8cc9bfc9b71616e7dc5aa391d91e33da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9428, "upload_time": "2019-03-28T15:12:57", "url": "https://files.pythonhosted.org/packages/cd/3c/474aaf66f2355a5abcc1e7e6e2f61892d300ccee6f0b3179880ce97a4de9/slurmlint-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd2f4e79d2b5a460acfe4c1890620037", "sha256": "3a417b3d2ed246ed4642fc55c23ca8a1bd709801b31c89fec3698361e925d481" }, "downloads": -1, "filename": "slurmlint-0.0.3.tar.gz", "has_sig": false, "md5_digest": "fd2f4e79d2b5a460acfe4c1890620037", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8261, "upload_time": "2019-03-28T15:12:59", "url": "https://files.pythonhosted.org/packages/44/78/ff4fd1fd7a3bf43479005c0723a6f1d9bf43fd15833b307c6bb34eb946a8/slurmlint-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8cc9bfc9b71616e7dc5aa391d91e33da", "sha256": "a6d3557228086362e5884ece9c9461268af7f4605fb2c4ef005954acbe81bbc5" }, "downloads": -1, "filename": "slurmlint-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8cc9bfc9b71616e7dc5aa391d91e33da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9428, "upload_time": "2019-03-28T15:12:57", "url": "https://files.pythonhosted.org/packages/cd/3c/474aaf66f2355a5abcc1e7e6e2f61892d300ccee6f0b3179880ce97a4de9/slurmlint-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd2f4e79d2b5a460acfe4c1890620037", "sha256": "3a417b3d2ed246ed4642fc55c23ca8a1bd709801b31c89fec3698361e925d481" }, "downloads": -1, "filename": "slurmlint-0.0.3.tar.gz", "has_sig": false, "md5_digest": "fd2f4e79d2b5a460acfe4c1890620037", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8261, "upload_time": "2019-03-28T15:12:59", "url": "https://files.pythonhosted.org/packages/44/78/ff4fd1fd7a3bf43479005c0723a6f1d9bf43fd15833b307c6bb34eb946a8/slurmlint-0.0.3.tar.gz" } ] }