{ "info": { "author": "Jonatan Dellagostin", "author_email": "jdellagostin@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: System :: Hardware :: Symmetric Multi-processing", "Topic :: System :: Networking", "Topic :: System :: Shells", "Topic :: System :: Systems Administration" ], "description": ".. image:: https://readthedocs.org/projects/remote-multicommand/badge/?version=master\n :target: http://remote-multicommand.readthedocs.io/en/master/?badge=master\n :alt: Documentation Status\n\n.. image:: https://coveralls.io/repos/github/jonDel/remote_multicommand/badge.svg?branch=master\n :target: https://coveralls.io/github/jonDel/remote_multicommand?branch=master\n\n.. image:: https://landscape.io/github/jonDel/remote_multicommand/master/landscape.svg?style=flat\n :target: https://landscape.io/github/jonDel/remote_multicommand/master\n :alt: Code Health\n\n.. image:: https://www.versioneye.com/user/projects/582ddf73c8dd3300448f9e81/badge.svg?style=flat\n :target: https://www.versioneye.com/user/projects/582ddf73c8dd3300448f9e81\n\n\nremote_multicommand\n===================\n\n**remote_multicommand** provides execution of multiple commands in multiple servers in parallel (multiple processes)\n\n\nExecuting a list of commands in multiple servers in parallel\n------------------------------------------------------------\n\n.. code:: python\n\n >>> from remote_multicommand import RemoteMultiCommand\n >>> cmds_list = ['hostname','whoami']\n >>> rm_cmd = RemoteMultiCommand('/tmp/sshkey')\n Log: Changing log level to ERROR | Log level:ERROR | Date:01/11/2016 16:40:10\n >>> rm_cmd.set_log_level('DEBUG')\n Log: Changing log level to DEBUG | Log level:DEBUG | Date:01/11/2016 16:40:12\n >>> servers_list = ['serverOne', 'serverTwo', 'serverThree', 'serverFour']\n >>> rm_cmd.launch_list_of_commands(cmds_list, num_of_process, servers_list, ssh_log_level='DEBUG')\n Log: Executing 2 commands in the list of servers: | Log level:INFO | Date:01/11/2016 16:40:27\n Log: Processing in the 4 servers will be done in 1 iterations. | Log level:INFO |\n # Date:01/11/2016 16:40:27\n Log: Processing 4 servers in this iteration. | Log level:DEBUG | Date:01/11/2016 16:40:27\n Log: Servers: ['serverOne', 'serverTwo', 'serverThree', 'serverFour'] | Log level:DEBUG |\n # Date:01/11/2016 16:40:27\n Log: It took 2.338 seconds to execute command 'hostname' in all 4 servers. | Log level:INFO\n # | Date:01/11/2016 16:40:30\n Log: Processing in the 4 servers will be done in 1 iterations. | Log level:INFO |\n # Date:01/11/2016 16:40:30\n Log: Processing 4 servers in this iteration. | Log level:DEBUG | Date:01/11/2016 16:40:30\n Log: Servers: ['serverOne', 'serverTwo', 'serverThree', 'serverFour'] | Log level:DEBUG |\n # Date:01/11/2016 16:40:30\n Log: It took 2.396 seconds to execute command 'whoami' in all 4 servers. | Log level:INFO |\n # Date:01/11/2016 16:40:32\n Log: Server serverTwo:\n - All 2 commands were issued: Yes\n - Number of commands issued: 2\n - Number of commands bypassed: 0 | Log level:INFO | Date:01/11/2016 16:40:32\n Log: Server serverOne:\n - All 2 commands were issued: Yes\n - Number of commands issued: 2\n - Number of commands bypassed: 0 | Log level:INFO | Date:01/11/2016 16:40:32\n Log: Server serverThree:\n - All 2 commands were issued: Yes\n - Number of commands issued: 2\n - Number of commands bypassed: 0 | Log level:INFO | Date:01/11/2016 16:40:32\n Log: Server serverFour:\n - All 2 commands were issued: Yes\n - Number of commands issued: 2\n - Number of commands bypassed: 0 | Log level:INFO | Date:01/11/2016 16:40:32\n Log: It took 4.735 seconds to execute the list of commands in all 4 servers. | Log level:INFO\n | Date:01/11/2016 16:40:32\n\n {'serverTwo': [OrderedDict([('command', 'hostname'), ('access', True),\n ('result', True), ('output', 'serverTwo\\n')]),\n OrderedDict([('command', 'whoami'), ('access', True), ('result', True), ('output', 'root\\n')])],\n 'serverOne': [OrderedDict([('command', 'hostname'), ('access', True), ('result', True),\n ('output', 'serverOne\\n')]),\n OrderedDict([('command', 'whoami'), ('access', True), ('result', True), ('output', 'root\\n')])],\n 'serverThree': [OrderedDict([('command', 'hostname'), ('access', True), ('result', True),\n ('output', 'serverThree\\n')]),\n OrderedDict([('command', 'whoami'), ('access', True), ('result', True), ('output', 'root\\n')])],\n 'serverFour': [OrderedDict([('command', 'hostname'), ('access', True), ('result', True),\n ('output', 'serverFour\\n')]),\n OrderedDict([('command', 'whoami'), ('access', True), ('result', True), ('output', 'root\\n')])]}\n\n\nInstallation\n------------\n\nTo install remote_multicommand, simply run:\n\n::\n\n $ pip install remote_multicommand\n\nremote_multicommand is compatible with Python 2.6+\n\nDocumentation\n-------------\n\nhttps://remote_multicommand.readthedocs.io\n\nSource Code\n-----------\n\nFeel free to fork, evaluate and contribute to this project.\n\nSource: https://github.com/jonDel/remote_multicommand\n\nLicense\n-------\n\nGPLv3 licensed.\n\nOBS\n---\n\nDue to bug https://github.com/paramiko/paramiko/issues/753, we must use paramiko versions under or equal 1.17.2", "description_content_type": null, "docs_url": "https://pythonhosted.org/remote-multicommand/", "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jonDel/remote_multicommand", "keywords": "ssh secure multi multi-processing parallel multiprocessing shell remote paramiko", "license": "GPLv3", "maintainer": null, "maintainer_email": null, "name": "remote-multicommand", "package_url": "https://pypi.org/project/remote-multicommand/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/remote-multicommand/", "project_urls": { "Homepage": "https://github.com/jonDel/remote_multicommand" }, "release_url": "https://pypi.org/project/remote-multicommand/0.1.3/", "requires_dist": null, "requires_python": null, "summary": "Provides execution of multiple commands in multiple servers in parallel (multiple processes)", "version": "0.1.3" }, "last_serial": 2476414, "releases": { "0.1.3": [ { "comment_text": "", "digests": { "md5": "75c69affbffdd15dd563e78d62d10d22", "sha256": "f5d61a801cb149f31acf0aa2967e30212467e3c4e4d36ec317ff5bdb53cf2223" }, "downloads": -1, "filename": "remote_multicommand-0.1.3-py2.7.egg", "has_sig": false, "md5_digest": "75c69affbffdd15dd563e78d62d10d22", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 5365, "upload_time": "2016-11-17T17:33:30", "url": "https://files.pythonhosted.org/packages/f7/8c/5ff047bdbd3b7e57a0e1110683be3980684468e67c518135d2d5d8e21c22/remote_multicommand-0.1.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "90da250e2be8522cc11392be6dd12aab", "sha256": "ea94a0590bd9b1c7205376dab93b4a53ebd64fbc31a651400d3532f54e29595e" }, "downloads": -1, "filename": "remote_multicommand-0.1.3.tar.gz", "has_sig": false, "md5_digest": "90da250e2be8522cc11392be6dd12aab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26877, "upload_time": "2016-11-17T17:31:04", "url": "https://files.pythonhosted.org/packages/1b/ac/c95c724764a3bb4831443013a5e83e7c5516214adbedf913587707c790c2/remote_multicommand-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "75c69affbffdd15dd563e78d62d10d22", "sha256": "f5d61a801cb149f31acf0aa2967e30212467e3c4e4d36ec317ff5bdb53cf2223" }, "downloads": -1, "filename": "remote_multicommand-0.1.3-py2.7.egg", "has_sig": false, "md5_digest": "75c69affbffdd15dd563e78d62d10d22", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 5365, "upload_time": "2016-11-17T17:33:30", "url": "https://files.pythonhosted.org/packages/f7/8c/5ff047bdbd3b7e57a0e1110683be3980684468e67c518135d2d5d8e21c22/remote_multicommand-0.1.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "90da250e2be8522cc11392be6dd12aab", "sha256": "ea94a0590bd9b1c7205376dab93b4a53ebd64fbc31a651400d3532f54e29595e" }, "downloads": -1, "filename": "remote_multicommand-0.1.3.tar.gz", "has_sig": false, "md5_digest": "90da250e2be8522cc11392be6dd12aab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26877, "upload_time": "2016-11-17T17:31:04", "url": "https://files.pythonhosted.org/packages/1b/ac/c95c724764a3bb4831443013a5e83e7c5516214adbedf913587707c790c2/remote_multicommand-0.1.3.tar.gz" } ] }