{ "info": { "author": "Andreas Stalder, David Meister, Matthias Gabriel, Urs Baumann", "author_email": "astalder@hsr.ch, dmeister@hsr.ch, mgabriel@hsr.ch, ubaumann@ins.hsr.ch", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Topic :: System :: Networking" ], "description": "==================================\nNuts - Network Unit Testing System\n==================================\n\n.. image:: https://travis-ci.org/HSRNetwork/Nuts.svg?branch=master\n :alt: Build status\n :target: https://travis-ci.org/HSRNetwork/Nuts\n\n.. image:: https://img.shields.io/pypi/v/nuts.svg\n :alt: PyPi Version\n :target: https://pypi.python.org/pypi/nuts\n\n.. image:: https://img.shields.io/pypi/pyversions/nuts.svg\n :alt: PyPi Python Versions\n :target: https://pypi.python.org/pypi/nuts\n\n.. image:: https://img.shields.io/pypi/wheel/nuts.svg\n :alt: PyPi wheel\n :target: https://pypi.python.org/pypi/nuts\n\n.. image:: https://img.shields.io/pypi/l/nuts.svg\n :alt: PyPi Licence\n :target: https://pypi.python.org/pypi/nuts\n\nNuts is a network unit testing system that automates tests in the network similar to unit tests you might know from programming.\nThe project uses SaltStack and napalm to communicate with network devices. Regular Salt minions are used for Linux devices.\nThis project is currently under heavy construction and we can't guarantee you that this code works. But we do our best.\nIf you have any questions, feature request or use cases please reach out to us at https://github.com/HSRNetwork/Nuts or https://networktocode.slack.com/\n\n**Documentation:** http://nuts.readthedocs.io/\n\n**Vagrant Project:** https://github.com/HSRNetwork/vagrant-nuts\n\n--------------------\nInstallation of nuts\n--------------------\n\nThe following Python versions are supported:\n\n- Python 2.7\n- Python 3.6\n\n\nPre-requirements\n----------------\n- Salt master\n\tBecause nuts is fully based on saltstack you have to install and configure a salt master first.\n\tFor the full installation guide head over to the `installation guide `_.\n- Salt api\n\tTo use nuts you also need salt-api which enables nuts to connect to the salt master over Http. For the installation guide visit `cherrypy documentation `_.\n- Napalm salt\n\tTo create a connection from the salt master to your network device of choice there's a fantastic library called NAPALM which got an integration into saltstack. For the installation guide head to `napalm-salt repository `_.\n\nInstall with pip\n----------------\n\nThe recommended way to install nuts is using `pip `_:\n\n::\n\n $ sudo pip install -U nuts\n\nThis will automatically install the latest version from the `Python Package\nIndex `__.\n\nManual Installation\n-------------------\n\nGet code::\n\n $ git clone https://github.com/HSRNetwork/Nuts.git\n $ cd Nuts\n\nInstall::\n\n $ sudo python setup.py install\n\n-------\nUsage\n-------\n\nusage: nuts.py [-h] [-v] [-m ITERATIONS] [-r RETRIES] [-c CONFIG] testfile\n\npositional arguments:\n testfile Start with a Testfile\n\noptional arguments:\n -h, --help show this help message and exit\n -v, --validate Validates Testfile\n -m ITERATIONS, --iterations ITERATIONS Changes the number of iterations that nuts waits for a result\n -r RETRIES, --retries RETRIES Set the max retries for failed tests\n -c CONFIG, --config CONFIG Config file formatted as YAML. Settings will be merged with ENVVARs\n\n---------\nTestfiles\n---------\nThe structure of the testfile has to be compliant with the testschema found in the folder nuts/src/service/testSchema.yaml.\nAn example could be:\n\n.. code:: yaml\n\n - name: example_arp\n command: arp\n devices: cisco.csr.1000v\n parameter: [192.168.16.128]\n operator: '='\n expected: '00:0C:29:EA:D1:68'\n\nPlease note that the devices attribute gets directly passed to the salt master which determines the targeted minions with so called globbing. For more information what's globbing head to `saltstack globbing `_.\nIf multiple minions are targeted each of them has to satisify the expected value for the test to pass.\n\nThe following commands are currently available with napalm-salt if this command is available on your device is also dependent on the availability of der underlying functions of napalm:\n - connectivity - checks the connectivity to a certain IP address with a simple ping. Takes the target IP address as a parameter\n - traceroute - checks the connectivity to a certain IP address with a traceroute. Takes the target IP address as a parameter\n - interfacestatus - checks if a specific interface is available. Takes the interface name as a parameter\n - interfacespeed - checks the speed of a specific interface. Takes the interface name as a parameter\n - arp - checks the mac address of a specific IP address. Takes the IP address as a parameter\n - checkversion - checks the version of the device. Takes no parameter\n - checkuser - checks which users are available on the device. Takes no parameter\n\nFor more information about the availability visit `napalm docs `_.\n\nThe following commands are currently available for debian systems:\n - connectivity\n - traceroute\n - dnscheck\n - dhcpcheck\n - webresponse\n - portresponse\n\nThere are the following operators available:\n - =\n - <\n - >\n - not\n\n--------\nExamples\n--------\nThere are a few more examples of test files available in the example folder.\n\n-------------\nConfiguration\n-------------\nYou can use a YAML formatted configuration file and/or set environment variables\nConfiguration options:\n - NUTS_SALT_REST_API_URL\n - NUTS_SALT_REST_API_USERNAME\n - NUTS_SALT_REST_API_PASSWORD\n - NUTS_SALT_REST_API_EAUTN\n - NUTS_MAX_RETRIES\n - NUTS_WAIT_ITERATIONS\n - NUTS_LOG_FILE_LEVEL\n - NUTS_LOG_CONSOLE_LEVEL\n - NUTS_LOG_FOLDER\n\n\nconfig.yml example:\n\n.. code:: yaml\n\n NUTS_SALT_REST_API_URL: 'http://salt-master.lab:8000'\n NUTS_SALT_REST_API_USERNAME: 'myUser'\n NUTS_SALT_REST_API_PASSWORD: 'myPassword'\n NUTS_SALT_REST_API_EAUTH: 'pam'\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/HSRNetwork/Nuts", "keywords": "network testing unit system", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "nuts", "package_url": "https://pypi.org/project/nuts/", "platform": "", "project_url": "https://pypi.org/project/nuts/", "project_urls": { "Homepage": "https://github.com/HSRNetwork/Nuts" }, "release_url": "https://pypi.org/project/nuts/1.2.1/", "requires_dist": [ "future", "futures", "pyaml", "salt-pepper", "pykwalify", "colorama", "jinja2" ], "requires_python": "", "summary": "A Network Unit Test System", "version": "1.2.1" }, "last_serial": 3191208, "releases": { "1.0.7": [ { "comment_text": "", "digests": { "md5": "c2a8aa5b4dd695831a16eb531b45fd9b", "sha256": "3a84449846e39736d80f853e87d9c27e778d9f48eaceb167b59c92d3c75770b1" }, "downloads": -1, "filename": "nuts-1.0.7.tar.gz", "has_sig": false, "md5_digest": "c2a8aa5b4dd695831a16eb531b45fd9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8472, "upload_time": "2016-12-22T15:22:40", "url": "https://files.pythonhosted.org/packages/35/81/fcddd76d2322aa6eb739cff69414650a45a67a878a2d010ee0f9ea3019c6/nuts-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "bc332e04b5ef301e94ed9b65e8f3017d", "sha256": "2a87c54f03725bdac15669f1eb092823af1e041ad5995e8dfabf11f5cf515828" }, "downloads": -1, "filename": "nuts-1.0.8.tar.gz", "has_sig": false, "md5_digest": "bc332e04b5ef301e94ed9b65e8f3017d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8475, "upload_time": "2016-12-22T15:27:46", "url": "https://files.pythonhosted.org/packages/77/57/fda0de6025eb7f8014b9190717d4ddc1d8486f269889840cb539e6002f4e/nuts-1.0.8.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "e6f82bf73eac7d2d1be459db8a8cb184", "sha256": "240ffd4156db7255757f225c865cdb18f795b4dd36ec7e0f2ccc3668670c4118" }, "downloads": -1, "filename": "nuts-1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e6f82bf73eac7d2d1be459db8a8cb184", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17466, "upload_time": "2017-08-03T21:23:44", "url": "https://files.pythonhosted.org/packages/22/99/cbafe834572d94449f0511b78a4ad07e5fb9bbab3e16636db0f4c15a0b50/nuts-1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52aa3194bc2cca21a01f2c334451f678", "sha256": "b193d08647fbf233d2ccbd64dfdfc32c8c6cdf2d687605e45ea34992c9a838ed" }, "downloads": -1, "filename": "nuts-1.1.tar.gz", "has_sig": false, "md5_digest": "52aa3194bc2cca21a01f2c334451f678", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12436, "upload_time": "2017-08-03T21:19:59", "url": "https://files.pythonhosted.org/packages/35/32/32b6941a8149991eb5492daa9dd2093972e622775339b8c8e2847a3a448b/nuts-1.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "7a1a541cd3401ec16f2e9ba41e77a01d", "sha256": "3c26ae49243a2089b954a822fa5d6e1c0036abb6e010ab501a518ec4725bca8a" }, "downloads": -1, "filename": "nuts-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7a1a541cd3401ec16f2e9ba41e77a01d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17936, "upload_time": "2017-08-03T22:07:54", "url": "https://files.pythonhosted.org/packages/52/28/b7269879cdd68c4cdcbbfe53e216a2b58c31d53c0a2afcedb216454ff699/nuts-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83cb874ec09451ef7f727c2d88d3b842", "sha256": "63c1e06497b552a58af80d1e0cf83deeb579aacc8dfac7b0c67acf9b6b61dbb9" }, "downloads": -1, "filename": "nuts-1.1.1.tar.gz", "has_sig": false, "md5_digest": "83cb874ec09451ef7f727c2d88d3b842", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12491, "upload_time": "2017-08-03T22:07:56", "url": "https://files.pythonhosted.org/packages/69/55/43ff26d55946bd957eaa9efdc10447bf5266e378b960df415369c27f7b40/nuts-1.1.1.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "5847b762f53ae4bbbf90ec0aeb762480", "sha256": "3488dc073245f87954aaa9439d7cba3bfed438485f2ba643661dc9c9c3d2ecfc" }, "downloads": -1, "filename": "nuts-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5847b762f53ae4bbbf90ec0aeb762480", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19796, "upload_time": "2017-09-21T10:08:24", "url": "https://files.pythonhosted.org/packages/ff/84/3d091f2141f1e0b4a41dff77aeff56a36dcda2b49619ef3aa5a14d439835/nuts-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7a1e86e8b29f2aec7548d55a1a87daf", "sha256": "bf37c7beaada922a64d8beee3770dfe1f8a78e5a531d04580d372ed8ff205a5b" }, "downloads": -1, "filename": "nuts-1.2.1.tar.gz", "has_sig": false, "md5_digest": "b7a1e86e8b29f2aec7548d55a1a87daf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16753, "upload_time": "2017-09-21T10:08:25", "url": "https://files.pythonhosted.org/packages/80/46/e7cbc3b632a13021bc7965f52762fbb175221364c76a5bebae4e7d83a85e/nuts-1.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5847b762f53ae4bbbf90ec0aeb762480", "sha256": "3488dc073245f87954aaa9439d7cba3bfed438485f2ba643661dc9c9c3d2ecfc" }, "downloads": -1, "filename": "nuts-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5847b762f53ae4bbbf90ec0aeb762480", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19796, "upload_time": "2017-09-21T10:08:24", "url": "https://files.pythonhosted.org/packages/ff/84/3d091f2141f1e0b4a41dff77aeff56a36dcda2b49619ef3aa5a14d439835/nuts-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7a1e86e8b29f2aec7548d55a1a87daf", "sha256": "bf37c7beaada922a64d8beee3770dfe1f8a78e5a531d04580d372ed8ff205a5b" }, "downloads": -1, "filename": "nuts-1.2.1.tar.gz", "has_sig": false, "md5_digest": "b7a1e86e8b29f2aec7548d55a1a87daf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16753, "upload_time": "2017-09-21T10:08:25", "url": "https://files.pythonhosted.org/packages/80/46/e7cbc3b632a13021bc7965f52762fbb175221364c76a5bebae4e7d83a85e/nuts-1.2.1.tar.gz" } ] }