{
"info": {
"author": "Edu Herraiz",
"author_email": "eherraiz@apsl.net",
"bugtrack_url": null,
"classifiers": [],
"description": "Rasengan\n=========\n\n.. image:: https://img.shields.io/pypi/v/rasengan.svg\n :target: https://pypi.python.org/pypi/rasengan/\n\n.. image:: https://travis-ci.org/APSL/rasengan.svg?branch=master\n :target: https://travis-ci.org/APSL/rasengan\n\nOverview\n--------\n\n``rasengan``, is a command-line tool for automated testing of multiple\nkind of integrations tests for domains, with a simple and flexible YAML\ndefinition syntax. The yaml file can contain multiple domains and we\ncould check it in a diferent ways: \n\n - Check the DNS resolution \n - Checkredirects, status code and expected URL in the redirect \n - Check http requests and the content text \n - Check http using different user-agents \n - Check SSL expiration date \n - Check SSL Qualys grade\n\nThe exit of the execution is an error if any of the checks fails. You\ncan use a mrpe parameter to get MRPE simple and resume output.\n\nInstall & configure\n-------------------\n\n``rasengan`` is developed and tested with a python 3 version. We require\n>3.4 to install it.\n\nTo install ``rasengan`` we can use the PyPI package:\n\n::\n\n pip install rasengan\n\nYou can use the publish docker image without need to install the python environment:\nWhere you have to share the directory where rasengan.yml is like a volume\n\n::\n docker run -v $PWD:/rasengan rasengan\n\nrasengan.yml\n------------\n\nAt this file you can specify the different for a domain:\n\n+------------+-----------------------------------------------------------------------+\n| Field | Description |\n+============+=======================================================================+\n| ``dns`` | Check the DNS resolution, expect domain\\_type and result |\n+------------+-----------------------------------------------------------------------+\n| ``ssl`` | Check the SSL status of the domain qualys test and expire date |\n+------------+-----------------------------------------------------------------------+\n| ``http`` | Request the domain from http, expect status\\_code, redirect or text |\n+------------+-----------------------------------------------------------------------+\n\nOptions in plugins\n------------------\n\n- **dns**:\n\n - *domain\\_type*: CNAME, A or another type of expected resolution in\n the domain.\n - *expected*: list of IPs or domains expected in the result.\n\n- **ssl**:\n\n - *grade*: Qualys test expected grade.\n - *days\\_to\\_expire*: expiration days limit warning in the https\n certificate for the domain.\n\n- **http**:\n\n - *status\\_code*: 200, 301, 302, 404, etc. Status code in the http\n request.\n - *protocol*: http or https, do the request over different http\n protocol. Default https.\n - *redirect*: expected redirect URL when you configure status code\n in 301 or 302.\n - *path*: The url path to check in the domain. Default is '/'.\n - *text*: check text in the result page when you expect 200 code.\n - *user\\_agent*: use a custom user\\_agent for the request or stored\n one from keys: mobile, desktop, google\\_desktop, google\\_mobile.\n - *auth\\_user*: username in http auth.\n - *auth\\_password*: password in http auth .\nUsage\n-----\n\n::\n\n $ rasengan --help\n Usage: rasengan [OPTIONS]\n\n Check all the domains in the file\n\n Options:\n -c, --config TEXT Name of file to check. Default rasengan.yml\n -d, --domains TEXT Check only this list of domain (comma separated)\n -l, --loglevel TEXT Log level. Default INFO\n -w, --workers INTEGER Number of threads to make the requests. Default 20.\n --mrpe / --no-mrpe MRPE output (disable logging options). Default False, and if True disable loglevel.\n --help Show this message and exit.\n\nBasic Example\n-------------\n\n::\n\n version: 0.2.6\n domains:\n www.apsl.net:\n ssl:\n grade: F\n days_to_expire: 10\n dns:\n domain_type: CNAME\n expected: \n - apsl.net.\n http:\n main: \n status_code: 301\n protocol: http\n redirect: https://www.apsl.net/\n main_https:\n status_code: 200\n text: Expertos en desarrollos web\n mobile:\n status_code: 200\n user_agent: mobile\n text: Expertos en desarrollos web \n apsl.net:\n dns:\n domain_type: A\n expected: \n - 148.251.84.231\n http:\n main_redirect: \n protocol: http\n status_code: 301\n redirect: https://www.apsl.net/\n https_redirect:\n protocol: https\n status_code: 301\n redirect: https://www.apsl.net/\n\nUsage example\n-------------\n\n::\n\n $ rasengan -c rasengan.yml \n 2017-12-26 03:38:01,250 INFO www.apsl.net - DNS Check - OK -> result: ['apsl.net.']\n 2017-12-26 03:38:01,309 INFO apsl.net - DNS Check - OK -> result: ['148.251.84.231']\n 2017-12-26 03:38:01,722 INFO www.apsl.net - [desktop] - Status Code for http://www.apsl.net/ - OK -> result: 301\n 2017-12-26 03:38:01,722 INFO apsl.net - [desktop] - Status Code for http://apsl.net/ - OK -> result: 301\n 2017-12-26 03:38:01,723 INFO www.apsl.net - [desktop] - Redirect Location for http://www.apsl.net/ - OK -> result: https://www.apsl.net/ \n 2017-12-26 03:38:01,723 INFO apsl.net - [desktop] - Redirect Location for http://apsl.net/ - OK -> result: https://www.apsl.net/\n 2017-12-26 03:38:01,820 INFO www.apsl.net - SSL Expires at 2018-01-17 23:59:59\n 2017-12-26 03:38:01,936 INFO www.apsl.net - [desktop] - Status Code for https://www.apsl.net/ - OK -> result: 200\n 2017-12-26 03:38:01,938 INFO www.apsl.net - [desktop] - Page content for https://www.apsl.net/ - OK -> Exists the phrase: Expertos en desarrollos web\n 2017-12-26 03:38:01,958 INFO apsl.net - [desktop] - Status Code for https://apsl.net/ - OK -> result: 301\n 2017-12-26 03:38:01,960 INFO www.apsl.net - [mobile] - Status Code for https://www.apsl.net/ - OK -> result: 200\n 2017-12-26 03:38:01,960 INFO apsl.net - [desktop] - Redirect Location for https://apsl.net/ - OK -> result: https://www.apsl.net/\n 2017-12-26 03:38:01,962 INFO www.apsl.net - [mobile] - Page content for https://www.apsl.net/ - OK -> Exists the phrase: Expertos en desarrollos web\n 2017-12-26 03:38:03,353 INFO www.apsl.net - SSL Qualys grade - OK -> result: F\n\n (rasengan) $ echo $?\n 0\n\n (rasengan) $ rasengan -c rasengan.yml --mrpe\n Checks OK: 11 -- \n\nFuture work\n-----------\n\n::\n\n - Integrate tavern to check APIs\n - Check http response time\n - Manage and show exceptions ocurred in Future threads\n\nAcknowledgements\n----------------\n\n``rasengan`` makes use of several open-source projects:\n\n- `click `__, for manage the command-line\n options.\n- `requests `__, for HTTP\n requests.\n- `pyyaml `__, for the manage the data\n syntax.\n- `colorlog `__, for\n formatting terminal outputs.\n- `dnspython `__, for manage the DNS\n queries.\n- `pyOpenSSL `__, for manage\n the ssl expiration checks.\n- `SSL Qualys API `__,\n for check the grade of security in SSL.\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/apsl/rasengan",
"keywords": "",
"license": "GPLv3",
"maintainer": "",
"maintainer_email": "",
"name": "rasengan",
"package_url": "https://pypi.org/project/rasengan/",
"platform": "",
"project_url": "https://pypi.org/project/rasengan/",
"project_urls": {
"Homepage": "https://github.com/apsl/rasengan"
},
"release_url": "https://pypi.org/project/rasengan/0.2.6/",
"requires_dist": [
"PyYAML (==3.12)",
"click (==6.7)",
"colorlog (==3.1.0)",
"dnspython (==1.15.0)",
"pyOpenSSL (==17.5.0)",
"requests (==2.18.4)"
],
"requires_python": ">=3.4",
"summary": " Is a command-line tool for automated testing of multiple kind of integrations tests for domains, with a simple and flexible YAML definition syntax.",
"version": "0.2.6"
},
"last_serial": 3473897,
"releases": {
"0.2.3": [
{
"comment_text": "",
"digests": {
"md5": "1bf7bcc45e22d3c2c76ad7302edc6bbf",
"sha256": "23ca9897416fa2beff809e4f2256d2ab715ac826f9edebd15e11c2e88503bdff"
},
"downloads": -1,
"filename": "rasengan-0.2.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1bf7bcc45e22d3c2c76ad7302edc6bbf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.4",
"size": 10627,
"upload_time": "2017-12-26T03:19:30",
"url": "https://files.pythonhosted.org/packages/d6/34/69a986331a39e74ecf28a0501fb82ccd9b7de4d63a09166bd42ac2b83bef/rasengan-0.2.3-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "37e2bcfdaeddf9d967d4bf0558a5bfb9",
"sha256": "29e07235dd75c91750bbaf536ab193cc9ae32bd15b667b3630fe8598c95277a5"
},
"downloads": -1,
"filename": "rasengan-0.2.3.tar.gz",
"has_sig": false,
"md5_digest": "37e2bcfdaeddf9d967d4bf0558a5bfb9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.4",
"size": 6832,
"upload_time": "2017-12-26T03:19:32",
"url": "https://files.pythonhosted.org/packages/d8/e9/4f970076b2e00d7424c1585e155c16b2ed5ab3eb15980838e1ba7ef5d0d9/rasengan-0.2.3.tar.gz"
}
],
"0.2.4": [
{
"comment_text": "",
"digests": {
"md5": "1da410c59df8e9d2a1280f12d2624a88",
"sha256": "50f1d5add436918686e5157704500a34b366e16133601850bb31ba948ae910ac"
},
"downloads": -1,
"filename": "rasengan-0.2.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1da410c59df8e9d2a1280f12d2624a88",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.4",
"size": 10940,
"upload_time": "2017-12-26T03:42:58",
"url": "https://files.pythonhosted.org/packages/c5/81/25fb536f536d5e072af0ca3bcd9aadd8f6b823d55383971afe7923518f4d/rasengan-0.2.4-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "ec32c4ff3e301d8dc808342468fd1c32",
"sha256": "a2f79287215acaf86c538037366f9002b87c0f0a093b68313aa3fded959f8d5f"
},
"downloads": -1,
"filename": "rasengan-0.2.4.tar.gz",
"has_sig": false,
"md5_digest": "ec32c4ff3e301d8dc808342468fd1c32",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.4",
"size": 7551,
"upload_time": "2017-12-26T03:43:00",
"url": "https://files.pythonhosted.org/packages/f4/8b/20bc13f17a926e04529327fd8c9c7f220889c3fa454a47bccb4a809476fc/rasengan-0.2.4.tar.gz"
}
],
"0.2.5": [
{
"comment_text": "",
"digests": {
"md5": "8c4406848394964f171f479a7a4702f5",
"sha256": "dc96bfba0c29b1738b3135cb3e6c11c41e2149db1e9361f40f8121c78b91227a"
},
"downloads": -1,
"filename": "rasengan-0.2.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8c4406848394964f171f479a7a4702f5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.4",
"size": 11063,
"upload_time": "2017-12-27T22:59:30",
"url": "https://files.pythonhosted.org/packages/33/0d/284f12ece7821557d70e248da989b2ac82abd467dc4162b786660475478f/rasengan-0.2.5-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "51c9652751f0d02d5be666269bcfd318",
"sha256": "93512a1372a05f9940b186ee90081caed92fd3411baea11ccb2c5ab6c4a2c69a"
},
"downloads": -1,
"filename": "rasengan-0.2.5.tar.gz",
"has_sig": false,
"md5_digest": "51c9652751f0d02d5be666269bcfd318",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.4",
"size": 7645,
"upload_time": "2017-12-27T22:59:33",
"url": "https://files.pythonhosted.org/packages/9d/dd/6b6768590e762eebe438410a68f614617f47430fda756cc097823fb804a5/rasengan-0.2.5.tar.gz"
}
],
"0.2.6": [
{
"comment_text": "",
"digests": {
"md5": "17d98c6bc1908ead1841dc5d4d4be5cf",
"sha256": "4165ae7c7a68872f05f50a5520e0b2c9d7bce5faabc4a43ad7c093c5eb6d8923"
},
"downloads": -1,
"filename": "rasengan-0.2.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "17d98c6bc1908ead1841dc5d4d4be5cf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.4",
"size": 11228,
"upload_time": "2018-01-09T11:26:32",
"url": "https://files.pythonhosted.org/packages/7d/82/cb3e9b25958fe3e598abb4e198609a4d24e73ba79ca26a8145688ae9ae3a/rasengan-0.2.6-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "ece4211cbb625fa45be89ed8687681d0",
"sha256": "033e676c6759b2c56350e1287b7ece2caace2ca44f768edc2e72aa0758a5874a"
},
"downloads": -1,
"filename": "rasengan-0.2.6.tar.gz",
"has_sig": false,
"md5_digest": "ece4211cbb625fa45be89ed8687681d0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.4",
"size": 7924,
"upload_time": "2018-01-09T11:26:34",
"url": "https://files.pythonhosted.org/packages/53/da/6e2beb31bfb06357b340797078dc9c9941983fe10b2b1cb913c9664d4ded/rasengan-0.2.6.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "17d98c6bc1908ead1841dc5d4d4be5cf",
"sha256": "4165ae7c7a68872f05f50a5520e0b2c9d7bce5faabc4a43ad7c093c5eb6d8923"
},
"downloads": -1,
"filename": "rasengan-0.2.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "17d98c6bc1908ead1841dc5d4d4be5cf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.4",
"size": 11228,
"upload_time": "2018-01-09T11:26:32",
"url": "https://files.pythonhosted.org/packages/7d/82/cb3e9b25958fe3e598abb4e198609a4d24e73ba79ca26a8145688ae9ae3a/rasengan-0.2.6-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "ece4211cbb625fa45be89ed8687681d0",
"sha256": "033e676c6759b2c56350e1287b7ece2caace2ca44f768edc2e72aa0758a5874a"
},
"downloads": -1,
"filename": "rasengan-0.2.6.tar.gz",
"has_sig": false,
"md5_digest": "ece4211cbb625fa45be89ed8687681d0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.4",
"size": 7924,
"upload_time": "2018-01-09T11:26:34",
"url": "https://files.pythonhosted.org/packages/53/da/6e2beb31bfb06357b340797078dc9c9941983fe10b2b1cb913c9664d4ded/rasengan-0.2.6.tar.gz"
}
]
}