{ "info": { "author": "Abhinav Singh", "author_email": "mailsforabhinav@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: BSD License", "Operating System :: MacOS", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python :: 2.7", "Topic :: Utilities" ], "description": "SSHPool\n=======\n\nManage persistent pool of SSH channels accessible via RESTful API and command line utility\n\n![Build status](https://api.travis-ci.org/abhinavsingh/sshpool.png)\n\nInstall\n-------\n\nTo install sshpool, simply:\n\n $ pip install sshpool\n\nThis will add two executable scripts `sshpoold` and `sshpoolctl` inside your python environment bin folder.\n\nsshpoold\n--------\n\n`sshpoold` manages SSH channels and allow communication via RESTful API\n\n $ sshpoold -h\n \n usage: sshpoold [-h] [--channel CHANNEL] [--host HOST] [--port PORT]\n \n optional arguments:\n -h, --help show this help message and exit\n --channel CHANNEL alias://user:pass@host:port\n --host HOST SSHPool interface (default: 127.0.0.1)\n --port PORT SSHPool listening port (default: 8877)\n\nStart `sshpoold` daemon:\n\n $ sshpoold\n [2013-07-16 22:12:46,291] * Running on http://127.0.0.1:8877/\n\nOptionally, `sshpoold` daemon can also be started with one or more SSH channel DSN:\n\n $ sshpoold --channel=localhost://localhost\n [2013-07-16 22:14:31,325] connecting to localhost://abhinavsingh:None@localhost:22\n [2013-07-16 22:14:31,331] * Running on http://127.0.0.1:8877/\n [2013-07-16 22:14:31,815] connected to localhost://abhinavsingh:None@localhost:22\n\nChannel DSN\n-----------\n\n[DSN](http://en.wikipedia.org/wiki/Data_source_name) string describes a connection to SSH server. Format `alias://user:pass@host:port`:\n\nAttribute | Description\n--- | ---\nalias | *(required)* An alias to use with `sshpoolctl` and RESTful API's\nuser | Defaults to current system user\npass | If not provided `sshpoold` will attempt to use public keys for authentication\nhost | *(required)* IP Address or FQDN\nport | Defaults to 22\n\nREST API\n--------\n\nResource | Method | Parameters | Response | Description\n--- | --- | --- | --- | ---\n/channels | GET | - | JSON dict | Retrieve meta info for all SSH channels\n/channels/<alias> | GET | - | JSON dict | Retrieve meta info for a specific SSH channel\n/channels | POST | DSN | \"OK\" | Start a new SSH channel\n/channels/<alias> | POST | command | JSON dict | Execute arbitrary command over a SSH channel\n/channels/<alias> | DELETE | - | \"OK\" | Terminate a SSH channel\n\nChannel meta info dictionary consists of following attributes:\n\nAttribute | Description\n--- | ---\nuser | username used for SSH channel\npass | None or string\nhost | IP Address or FQDN\nport | SSH server port used for connection\nis_alive | boolean\nstart_time | epoch timestamp of when SSH channel was started\n\nCommand output dictionary consists of following attributes:\n\nAttribute | Description\n--- | ---\nstdout | stdout stream\nstderr | stderr stream\nexit_code | exit code of executed command\nexception | available if command execution failed internally\n\nsshpoolctl\n----------\n\n`sshpoolctl` provides an interactive shell to communicate with `sshpoold` daemon\n\n $ sshpoolctl -h\n \n usage: sshpoolctl [-h] [--host HOST] [--port PORT]\n \n optional arguments:\n -h, --help show this help message and exit\n --host HOST SSHPool interface (default: 127.0.0.1)\n --port PORT SSHPool listening port (default: 8877)\n\nStart sshpoolctl utility:\n\n $ sshpoolctl \n ==> Press Ctrl-C to exit <==\n sshpool> help\n \n Documented commands (type help ):\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n exit help quit run start status stop\n\nRun arbitrary shell commands:\n \n sshpool> help run\n run Run arbitrary commands over a channel\n \n sshpool> run localhost echo hello world\n hello world\n \n sshpool> run localhost pwd\n /Users/abhinavsingh\n\nStart a new SSH channel:\n\n sshpool> help start\n start Add a new channel\n \n sshpool> start local://localhost\n OK\n\nView status of all SSH channels:\n\n sshpool> help status\n status View status of started channels\n \n sshpool> status\n local abhinavsingh:None@localhost:22 running 53\n localhost abhinavsingh:None@localhost:22 running 449\n\nStop a SSH channel:\n\n sshpool> help stop\n stop Stop an existing channel\n \n sshpool> stop localhost\n OK\n \n sshpool> status\n local abhinavsingh:None@localhost:22 running 154", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/abhinavsingh/sshpool", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "sshpool", "package_url": "https://pypi.org/project/sshpool/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/sshpool/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/abhinavsingh/sshpool" }, "release_url": "https://pypi.org/project/sshpool/0.1.2/", "requires_dist": null, "requires_python": null, "summary": "Manage persistent pool of SSH channels accessible via RESTful API and command line utility", "version": "0.1.2" }, "last_serial": 817557, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "4649c4da295a5c6e6c2df4d222e864db", "sha256": "85bee2a6a67f00470eb2d9a1a1f17c41098ae79a483d9cbabb4f277657bfd6b6" }, "downloads": -1, "filename": "sshpool-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4649c4da295a5c6e6c2df4d222e864db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7926, "upload_time": "2013-07-16T16:17:20", "url": "https://files.pythonhosted.org/packages/20/da/98b4e329777d63a3f382ac4cd482d5d64ca8d39dfab8702cae5c3a8188fe/sshpool-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c859694e19796baa1217bb3a05aacb47", "sha256": "320f854710467449164489522056c88233c43f521a532073762b159c9ef28d44" }, "downloads": -1, "filename": "sshpool-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c859694e19796baa1217bb3a05aacb47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10289, "upload_time": "2013-07-16T22:24:10", "url": "https://files.pythonhosted.org/packages/bd/fb/a013ea381acc9c11ab935b68b5020187914fb5d465ede596e127768fa20d/sshpool-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "310bfe3ec8b7d198e5eefcc2cdb47a4c", "sha256": "38e4d9696796ef8b7006ec91464f19107657915460c19cf9b404a8e874cba2fb" }, "downloads": -1, "filename": "sshpool-0.1.2.tar.gz", "has_sig": false, "md5_digest": "310bfe3ec8b7d198e5eefcc2cdb47a4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12031, "upload_time": "2013-07-17T20:46:18", "url": "https://files.pythonhosted.org/packages/26/68/c49c0f796dc44f66b2b4d6b526faafd1af16c5bfead4a939750e828bc237/sshpool-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "310bfe3ec8b7d198e5eefcc2cdb47a4c", "sha256": "38e4d9696796ef8b7006ec91464f19107657915460c19cf9b404a8e874cba2fb" }, "downloads": -1, "filename": "sshpool-0.1.2.tar.gz", "has_sig": false, "md5_digest": "310bfe3ec8b7d198e5eefcc2cdb47a4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12031, "upload_time": "2013-07-17T20:46:18", "url": "https://files.pythonhosted.org/packages/26/68/c49c0f796dc44f66b2b4d6b526faafd1af16c5bfead4a939750e828bc237/sshpool-0.1.2.tar.gz" } ] }