{ "info": { "author": "Florian Schulze", "author_email": "florian.schulze@gmx.net", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: System Administrators", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 2 :: Only", "Topic :: System :: Installation/Setup", "Topic :: System :: Systems Administration" ], "description": "Overview\n========\n\nThe ploy_fabric plugin provides integration of `Fabric`_ with `ploy`_.\n\n.. _Fabric: http://fabfile.org\n.. _ploy: https://github.com/ployground/\n\n\nInstallation\n============\n\nploy_fabric is best installed with easy_install, pip or with zc.recipe.egg in a buildout.\n\nOnce installed, it's functionality is immediately usable with ploy.\n\n\nCommands\n========\n\nThe plugin adds the following commands to ploy.\n\n``do``\n Runs a Fabric task with simplified syntax for arguments.\n You can just put positional arguments on the command line behind the task name.\n For keyword arguments user the ``name=value`` syntax.\n For example::\n\n ploy do something arg key=value\n\n``fab``\n Runs a Fabric task and passes on command line options to Fabric.\n This basically reflects the ``fab`` script of Fabric.\n\n\nOptions\n=======\n\nInstances only get the new ``fabfile`` option to specify which file to look in for tasks.\nThe location is relative to ``ploy.conf``.\n\nInstance methods\n================\n\nFor the Python side, each instance gains the ``do(task, *args, **kwargs)`` method.\nThe ``task`` argument is the name of a task from the Fabric script which should be run. The remaining arguments are passed on to that task.\n\nAnother helper added to each instance is a context manager accessible via the ``fabric`` attribute on instances.\nWith that you can switch to a new ssh connection with a different user in your Fabric tasks:\n\n.. code-block:: python\n\n from fabric.api import env, run\n\n\n def sometask():\n run(\"whoami\") # prints the default user (root)\n with env.instance.fabric(user='foo'):\n run(\"whoami\") # prints 'foo' if the connection worked\n run(\"whoami\") # prints the default user (root)\n\nAll changes to the Fabric environment are reverted when the context manager exits.\n\nFabric task decorator\n=====================\n\nWith ``ploy_fabric.context`` you can decorate a task to use a specific user with a separate connection.\nAll changes to the Fabric environment are reverted when the context manager exits.\nThis is useful if you want to run a task from inside another task.\n\n.. code-block:: python\n\n from fabric.api import env, run\n from ploy_fabric import context\n\n\n @context # always run with the default user\n def sometask():\n run(\"whoami\") # prints the default user (root)\n\n\n @context(user=None) # always run with the default user (alternate syntax)\n def someothertask():\n env.forward_agent = True\n run(\"whoami\") # prints the default user (root)\n\n\n @context(user='foo') # always run as foo user\n def anothertask():\n env.forward_agent = False\n run(\"whoami\") # prints the default user (user)\n someothertask()\n assert env.forward_agent == False\n\n\nFabric environment\n==================\n\nThe Fabric environment has the following settings by default.\n\n``reject_unknown_hosts``\n Always set to ``True``, ssh connections are handled by this plugin and ploy.\n\n``disable_known_hosts``\n Always set to ``True``, handled by ploy.\n\n``host_string``\n The **unique id** of the current instance, only manipulate if you know what you do!\n\n``known_hosts``\n Path to the ``known_hosts`` file managed by ploy.\n\n``instances``\n Dictionary allowing access to the other instances to get variables or call methods on.\n\n``instance``\n The current instance to access variables from the ``config`` attribute or other things and methods.\n\n``config_base``\n The directory of ``ploy.conf``.\n\nAny option of the instance starting with ``fabric-`` is stripped of the ``fabric-`` prefix and overwrites settings in the environment with that name.\n\n\nChangelog\n=========\n\n1.1.1 - 2018-06-07\n------------------\n\n* Update requirements to block Fabric >= 2 as it isn't compatible.\n [fschulze]\n\n\n1.1.0 - 2014-10-27\n------------------\n\n* Require Fabric >= 1.4.0 and vastly simplify the necessary patching.\n [fschulze]\n\n* Close all newly opened connections after a Fabric call.\n [fschulze]\n\n* Add context manager and decorator to easily switch fabric connections.\n [fschulze]\n\n\n1.0.0 - 2014-07-19\n------------------\n\n* Added documentation.\n [fschulze]\n\n\n1.0b6 - 2014-07-15\n------------------\n\n* Allow overwriting of fabric env from config with options prefixed by\n ``fabric-``, i.e. ``fabric-shell = /bin/sh -c``.\n [fschulze]\n\n\n1.0b5 - 2014-07-08\n------------------\n\n* Packaging and test fixes.\n [fschulze]\n\n* Fix task listing for ``do`` command.\n [fschulze]\n\n\n1.0b4 - 2014-07-04\n------------------\n\n* Use unique id for host string to avoid issues.\n [fschulze]\n\n* Added ``fab`` command which is just a wrapper for Fabric with all it's options\n and reworked ``do`` command into a simple version to just run a task.\n [fschulze]\n\n* Renamed mr.awsome to ploy and mr.awsome.fabric to ploy_fabric.\n [fschulze]\n\n\n1.0b3 - 2014-06-09\n------------------\n\n* When depending on Fabric, skip 1.8.3 which added a version pin on paramiko.\n [fschulze]\n\n* Only add Fabric to install_requires if it can't be imported. That way we\n don't get problems if it's already installed as a system packages or in a\n virtualenv.\n [fschulze]\n\n\n1.0b2 - 2014-05-15\n------------------\n\n* Register ``fabfile`` massager for all instances.\n [fschulze]\n\n* Use context manager for output filtering and filter in ``do`` helper.\n [fschulze]\n\n* Moved setuptools-git from setup.py to .travis.yml, it's only needed for\n releases and testing.\n [fschulze]\n\n\n1.0b1 - 2014-03-24\n------------------\n\n* Initial release\n [fschulze]\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/ployground/ploy_fabric", "keywords": "", "license": "BSD 3-Clause License", "maintainer": "", "maintainer_email": "", "name": "ploy_fabric", "package_url": "https://pypi.org/project/ploy_fabric/", "platform": "", "project_url": "https://pypi.org/project/ploy_fabric/", "project_urls": { "Homepage": "http://github.com/ployground/ploy_fabric" }, "release_url": "https://pypi.org/project/ploy_fabric/1.1.1/", "requires_dist": null, "requires_python": "", "summary": "Plugin to integrate Fabric with ploy.", "version": "1.1.1" }, "last_serial": 5377166, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "8d4895275deda0f736360b81d95525f0", "sha256": "011eb87b935ef1098bf0e39b2ecc1b39b70f46b348ad9f672d992fb3f93c33a8" }, "downloads": -1, "filename": "ploy_fabric-1.0.0.zip", "has_sig": false, "md5_digest": "8d4895275deda0f736360b81d95525f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14918, "upload_time": "2014-07-19T19:29:33", "url": "https://files.pythonhosted.org/packages/14/9d/e989b54f1c069c3825b1fcb72069d820a13b2f617cd4151a7fbb97fbd52e/ploy_fabric-1.0.0.zip" } ], "1.0b4": [ { "comment_text": "", "digests": { "md5": "6d791a7860b38ab4e25444ef8cf040a7", "sha256": "2ba4b122e23793326adcbbd168b5765e076c8f3ccc344800697fbf0fa2591b31" }, "downloads": -1, "filename": "ploy_fabric-1.0b4.zip", "has_sig": false, "md5_digest": "6d791a7860b38ab4e25444ef8cf040a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11246, "upload_time": "2014-07-04T13:45:57", "url": "https://files.pythonhosted.org/packages/1e/82/316d75fe1648d62493f66a1c6702e532da4a0746800c6f7c5c1e612d4651/ploy_fabric-1.0b4.zip" } ], "1.0b5": [ { "comment_text": "", "digests": { "md5": "2c221f1d70a94ff752279109919fedbf", "sha256": "478bd224bab53b7ad6773b6ba144c6c2faa33df60cdd2a2de9a3f6f2a9e2d16a" }, "downloads": -1, "filename": "ploy_fabric-1.0b5.zip", "has_sig": false, "md5_digest": "2c221f1d70a94ff752279109919fedbf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11560, "upload_time": "2014-07-08T11:24:07", "url": "https://files.pythonhosted.org/packages/84/ec/25475e2e1019692481b5c955d75716635bbc43edf331fadb1eff46aa49a0/ploy_fabric-1.0b5.zip" } ], "1.0b6": [ { "comment_text": "", "digests": { "md5": "8f22b822caa926cc7328eee87926acb2", "sha256": "7ee0e8c02646af3d2e5a2672c3b7fa32efa6685f4f55041b2ed05484c9a5045c" }, "downloads": -1, "filename": "ploy_fabric-1.0b6.zip", "has_sig": false, "md5_digest": "8f22b822caa926cc7328eee87926acb2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12244, "upload_time": "2014-07-15T13:17:14", "url": "https://files.pythonhosted.org/packages/3f/d5/c71f1360f1a5a707427bfd335adc26254b2836fc330ff48ed819862594a2/ploy_fabric-1.0b6.zip" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "1545881a1e7119b47ae9c23698c8cac6", "sha256": "3432206427e192aa05da81d7940721e4c8a45c3f24bc2dbfaf3d615d5442c851" }, "downloads": -1, "filename": "ploy_fabric-1.1.0.zip", "has_sig": false, "md5_digest": "1545881a1e7119b47ae9c23698c8cac6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16934, "upload_time": "2014-10-27T08:38:55", "url": "https://files.pythonhosted.org/packages/36/30/07dc10fecbfde09e48dca7eca56189231fe2ce0c7cc5734cbf2292e006ff/ploy_fabric-1.1.0.zip" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "5cce9750d01c876860b91abdfad0736e", "sha256": "e14e4fe5e54bf7063caaea8d3d1b3b1a58ce258a4bdcff1c86b1cce631294918" }, "downloads": -1, "filename": "ploy_fabric-1.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "5cce9750d01c876860b91abdfad0736e", "packagetype": "bdist_wheel", "python_version": "2", "requires_python": null, "size": 9059, "upload_time": "2018-06-07T06:07:10", "url": "https://files.pythonhosted.org/packages/31/0a/6e876d594075021bd408d52fe3c6a7bc79101d57c1849861998896692c92/ploy_fabric-1.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a499f79e2cb302d9fc4b3ee573a75e0", "sha256": "74230a990df7569057fe7f441134e80e64d031d780437445c49e22816ffc8932" }, "downloads": -1, "filename": "ploy_fabric-1.1.1.tar.gz", "has_sig": false, "md5_digest": "8a499f79e2cb302d9fc4b3ee573a75e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11674, "upload_time": "2018-06-07T06:07:08", "url": "https://files.pythonhosted.org/packages/e7/a6/3b4b2246756d37919777fb13cb71533a2700290702288ac2297a1703710d/ploy_fabric-1.1.1.tar.gz" } ], "2.0.0b1": [ { "comment_text": "", "digests": { "md5": "65aab2306816f64821208f2b09d4a663", "sha256": "fa1d9e34460607b722d65659def4b963d3fd4f83dd9b1ffe4e11135588beaffd" }, "downloads": -1, "filename": "ploy_fabric-2.0.0b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "65aab2306816f64821208f2b09d4a663", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11929, "upload_time": "2018-02-07T08:39:10", "url": "https://files.pythonhosted.org/packages/a8/5a/d1ba7f9f37741a7058ccf2185f58f9a4bf0c273357c2dd6e9b07c162357f/ploy_fabric-2.0.0b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec6c96b11d4c19305a5e93c1bed4d351", "sha256": "95785e8a2e25b540fbcaa5052256eb33aa41fd1c72f356a1a15d39ee323307c0" }, "downloads": -1, "filename": "ploy_fabric-2.0.0b1.tar.gz", "has_sig": false, "md5_digest": "ec6c96b11d4c19305a5e93c1bed4d351", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10274, "upload_time": "2018-02-07T08:39:09", "url": "https://files.pythonhosted.org/packages/bc/23/d5cfd052dfb01c02a0c10aeef634315657423ad8b2fac44807fe28b0fc3d/ploy_fabric-2.0.0b1.tar.gz" } ], "2.0.0b2": [ { "comment_text": "", "digests": { "md5": "0dd8e5f6bdf6ed27628376269fe69e6c", "sha256": "f059a452e8751336cb0c3ef4ae5103aa90842c0cb484eb5996c3211578afae38" }, "downloads": -1, "filename": "ploy_fabric-2.0.0b2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0dd8e5f6bdf6ed27628376269fe69e6c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8842, "upload_time": "2019-06-09T08:33:23", "url": "https://files.pythonhosted.org/packages/c8/d5/4b703a8ab7c01a6cac5b23f87810468c34a8cc95ad5cfa739b33cec50dca/ploy_fabric-2.0.0b2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de5e8d7e851bdbdd0e8606bf0d809a93", "sha256": "9aebe81f96db9b943625a7dee0e0ceee02008e1c24777255d3cf5b58f06ec9b7" }, "downloads": -1, "filename": "ploy_fabric-2.0.0b2.tar.gz", "has_sig": false, "md5_digest": "de5e8d7e851bdbdd0e8606bf0d809a93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10332, "upload_time": "2019-06-09T08:33:21", "url": "https://files.pythonhosted.org/packages/51/c7/79b4c8517deedd3ce9dadab26fef7b9a2cd1994febb4fdf00aad04583ed7/ploy_fabric-2.0.0b2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5cce9750d01c876860b91abdfad0736e", "sha256": "e14e4fe5e54bf7063caaea8d3d1b3b1a58ce258a4bdcff1c86b1cce631294918" }, "downloads": -1, "filename": "ploy_fabric-1.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "5cce9750d01c876860b91abdfad0736e", "packagetype": "bdist_wheel", "python_version": "2", "requires_python": null, "size": 9059, "upload_time": "2018-06-07T06:07:10", "url": "https://files.pythonhosted.org/packages/31/0a/6e876d594075021bd408d52fe3c6a7bc79101d57c1849861998896692c92/ploy_fabric-1.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a499f79e2cb302d9fc4b3ee573a75e0", "sha256": "74230a990df7569057fe7f441134e80e64d031d780437445c49e22816ffc8932" }, "downloads": -1, "filename": "ploy_fabric-1.1.1.tar.gz", "has_sig": false, "md5_digest": "8a499f79e2cb302d9fc4b3ee573a75e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11674, "upload_time": "2018-06-07T06:07:08", "url": "https://files.pythonhosted.org/packages/e7/a6/3b4b2246756d37919777fb13cb71533a2700290702288ac2297a1703710d/ploy_fabric-1.1.1.tar.gz" } ] }