{ "info": { "author": "Antonio Feregrino", "author_email": "antonio.feregrino@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Utilities" ], "description": "# soft-spot\n\n[![Build Status](https://dev.azure.com/messier-16/soft-spot/_apis/build/status/fferegrino.soft-spot?branchName=master)](https://dev.azure.com/messier-16/soft-spot/_build/latest?definitionId=1&branchName=master) [![PyPI version](https://badge.fury.io/py/soft-spot.svg)](https://pypi.org/project/soft-spot/)\n\nDo you have a soft spot for cheap cloud computing (**a.k.a. AWS Spot instances**)? Me too, no shame on that.\n\n![Crappy Logo](/soft-spot.png?raw=true \"Crappy Logo\")\n\nHowever, what is a shame is having to go through that clunky UI and click here and there to get one; `soft-spot` makes it dead easy to launch an instance:\n\n## How?\nJust define a file with the specifications of the machine you want to launch: \n\n```ini\n[INSTANCE]\nami = ami-06d51e91cea0dac8d\ntype = t2.micro\nsecurity_group = SecurityGroupName\nkey_pair = some-key\nspot_price = 0.005\navailability_zone = us-west-2c\n\n[VOLUME]\nid = vol-00a56acb10f11b0e3\ndevice = /dev/sdf\n\n[ACCOUNT]\nuser = ubuntu\nkey_location = ~/.ssh/some-key.pem\n\n[SCRIPT]\ncommands = [\"sudo mkdir /data\", \"sudo mount /dev/xvdf /data\", \"sudo chown ubuntu /data\"]\n```\n\nThen just execute the `sspot request` command: \n\n```bash\nsspot request <>\n```\n\n### Other commands\n\n#### `cancel` \n\nCancel all **active** spot requests and terminate the instances associated to them: \n\n```bash\nsspot cancel\n```\n\n#### `price` \n\nShow the prices for the specified spot instance:\n\n```bash\nsspot price <>\n```\n\n### Credentials \nThis script uses `boto3` so I strongly recommend heading over to [its documentation](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html) to learn more. \n\nAlternatively, you could create a tiny configuration file like this: \n\n```ini\n[DEFAULT]\naws_access_key_id = an_acces_key\naws_secret_access_key = a_secret_key\nregion_name = us-west-2\n```\n\nAnd then pass it on to the `spot` command:\n\n```bash\nsspot -a ~/aws_credentials.txt request <> \n```\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/fferegrino/soft-spot", "keywords": "", "license": "MIT", "maintainer": "Antonio Feregrino", "maintainer_email": "antonio.feregrino@gmail.com", "name": "soft-spot", "package_url": "https://pypi.org/project/soft-spot/", "platform": "", "project_url": "https://pypi.org/project/soft-spot/", "project_urls": { "Homepage": "https://github.com/fferegrino/soft-spot", "Repository": "https://github.com/fferegrino/soft-spot" }, "release_url": "https://pypi.org/project/soft-spot/0.4.0/", "requires_dist": [ "boto3 (>=1.9,<2.0)", "click (>=7.0,<8.0)", "fabric (>=2.5,<3.0)", "tabulate (>=0.8.5,<0.9.0)", "backoff (>=1.8,<2.0)" ], "requires_python": ">=3.6,<4.0", "summary": "Move to a land of Spot AWS instances", "version": "0.4.0", "yanked": false, "yanked_reason": null }, "last_serial": 6114254, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "c1e3311c3685b9475a52ad1a889fc4d7", "sha256": "4189635688248b2e3acd93d205fc8b7fd7d7b486e1a1b27862bc567b3497c267" }, "downloads": -1, "filename": "soft_spot-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c1e3311c3685b9475a52ad1a889fc4d7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 2942, "upload_time": "2019-10-04T22:21:57", "upload_time_iso_8601": "2019-10-04T22:21:57.709879Z", "url": "https://files.pythonhosted.org/packages/e9/61/88c159009e735c74ae9cb5fe06e0bf6d98701dbfff82a147b5a9ab4a82e4/soft_spot-0.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "385e6b4f0abb4d26d548cf8ae05ef659", "sha256": "0c823527c2d17904c16617a13589b38d5f4cb2722dbd93dc247115d52b1c1ce7" }, "downloads": -1, "filename": "soft-spot-0.0.0.tar.gz", "has_sig": false, "md5_digest": "385e6b4f0abb4d26d548cf8ae05ef659", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 2586, "upload_time": "2019-10-04T22:21:55", "upload_time_iso_8601": "2019-10-04T22:21:55.204148Z", "url": "https://files.pythonhosted.org/packages/35/53/ac9c29564635df99409891fb8272719e5c21ab90305cbb093ad80780359c/soft-spot-0.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "dc29754a310100924f1ea7c6af8ab683", "sha256": "0e6277ca215ed10a836a01bc43cdd18a5fa395bd56847b6bed819b86ee7d9b90" }, "downloads": -1, "filename": "soft_spot-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "dc29754a310100924f1ea7c6af8ab683", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 3625, "upload_time": "2019-10-05T04:49:38", "upload_time_iso_8601": "2019-10-05T04:49:38.684322Z", "url": "https://files.pythonhosted.org/packages/03/ef/dd3c5b3883b3be0062365280ac646adb2594f9b4c48d21c5ac22e39867c6/soft_spot-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "119bf40da6d80c28dfa17c05ee7f74ee", "sha256": "7e2a2a2206ae475b05e2b194e1c1b42665840cb8f873212147e7a4c68c505cee" }, "downloads": -1, "filename": "soft-spot-0.1.0.tar.gz", "has_sig": false, "md5_digest": "119bf40da6d80c28dfa17c05ee7f74ee", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 3422, "upload_time": "2019-10-05T04:49:37", "upload_time_iso_8601": "2019-10-05T04:49:37.019018Z", "url": "https://files.pythonhosted.org/packages/c6/55/95b8cd9d4961ee3e5f16a20871336951dd7b6ebb89d26bee828867a330e1/soft-spot-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "080c4a7e8f5f126c7c4088781e754a81", "sha256": "0776bcca8b69ac78f8ae7a8c1e848f826bef6f498cdd2997e64223c954edb862" }, "downloads": -1, "filename": "soft_spot-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "080c4a7e8f5f126c7c4088781e754a81", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 3625, "upload_time": "2019-10-05T07:38:17", "upload_time_iso_8601": "2019-10-05T07:38:17.076323Z", "url": "https://files.pythonhosted.org/packages/78/d5/7dc5d1201e1f35c47a61c21e43cf8458c7d4f9c0601814759b707a1f24a9/soft_spot-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5a1006b16c41eff2ac08ef17e47da8f6", "sha256": "d6277dede52e38751ee5d71cc6e032c07448ded3beb3606f00fb1bd78aab95f6" }, "downloads": -1, "filename": "soft-spot-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5a1006b16c41eff2ac08ef17e47da8f6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 3383, "upload_time": "2019-10-05T07:38:15", "upload_time_iso_8601": "2019-10-05T07:38:15.535210Z", "url": "https://files.pythonhosted.org/packages/35/49/9f448ee54f13f484324e05a1b6c67d414970a3fb3a4ea39981dffeeb6f05/soft-spot-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "70c167766641914b75e1cc5b725f117b", "sha256": "62c6461e38a096e775f9aed668fda00d70cd5d6b079c77f7cd45012851633186" }, "downloads": -1, "filename": "soft_spot-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "70c167766641914b75e1cc5b725f117b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 3625, "upload_time": "2019-10-05T07:47:12", "upload_time_iso_8601": "2019-10-05T07:47:12.558664Z", "url": "https://files.pythonhosted.org/packages/fe/26/48d4925fa5935f7ddfdcad29b2d61408cb5de4741cfbf10a6492427ca48e/soft_spot-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b4b8fa49859ec8af6c303436749b874e", "sha256": "3a3e73b148ecc85ee892a747c7c8c504e329d10d4267e1fdbbb58e3e34142ca7" }, "downloads": -1, "filename": "soft-spot-0.1.2.tar.gz", "has_sig": false, "md5_digest": "b4b8fa49859ec8af6c303436749b874e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 3387, "upload_time": "2019-10-05T07:47:10", "upload_time_iso_8601": "2019-10-05T07:47:10.958777Z", "url": "https://files.pythonhosted.org/packages/ee/84/ed61c40576404667f202acb61599e6cfd41ebfcc283bffa393b4abbe3a64/soft-spot-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "20af38c214affff4f871b17c7dd11772", "sha256": "9dfc924e561fe2b51148ee097ceb962569a58e2dda84368a0fdd18467d727c24" }, "downloads": -1, "filename": "soft_spot-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "20af38c214affff4f871b17c7dd11772", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 3746, "upload_time": "2019-10-13T05:11:39", "upload_time_iso_8601": "2019-10-13T05:11:39.170909Z", "url": "https://files.pythonhosted.org/packages/f3/93/d4c812385f680d848a0f17d25ee2bda084a3a49b5d04f0f5aaff32765370/soft_spot-0.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4dc44f833009348de2d23f774a38540c", "sha256": "e214a680ee85e97f84ab2e769bc2713f716e77c7cbc8cabd406767058d54e021" }, "downloads": -1, "filename": "soft-spot-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4dc44f833009348de2d23f774a38540c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 3521, "upload_time": "2019-10-13T05:11:37", "upload_time_iso_8601": "2019-10-13T05:11:37.565861Z", "url": "https://files.pythonhosted.org/packages/90/60/3ab8d5916b5740c75c1a846cdfd7f1f1532a5c3aa115e684fa1cd726223d/soft-spot-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "cf3eb1bd327370eff4f8caea136cd2d1", "sha256": "bbea2ec3026001828669fb71e342eccea9c49b6c0920b23e3dc90770e83dc74a" }, "downloads": -1, "filename": "soft_spot-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cf3eb1bd327370eff4f8caea136cd2d1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 5530, "upload_time": "2019-10-19T12:11:19", "upload_time_iso_8601": "2019-10-19T12:11:19.703952Z", "url": "https://files.pythonhosted.org/packages/e4/83/785b420dce9c8f5740c215b101db131b6bd4e95847a090e648742ebc4b8b/soft_spot-0.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3319b6e7b91b2447adf5a7ede85e6369", "sha256": "064872607298eb1bcd69d4d626a24532e333dfe11faa7dc774730f394aa1dc21" }, "downloads": -1, "filename": "soft-spot-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3319b6e7b91b2447adf5a7ede85e6369", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 4525, "upload_time": "2019-10-19T12:11:18", "upload_time_iso_8601": "2019-10-19T12:11:18.143921Z", "url": "https://files.pythonhosted.org/packages/35/d8/0862dd3ff22a5b6a64070a5ffc468168072a6479c922a7acd60398164947/soft-spot-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "e979125319c82e8f8b51abbfefc4a182", "sha256": "41a4ce12cc1bb250616ed69ead37b090a6abd006d3d0748f475e8a6eb8764b4f" }, "downloads": -1, "filename": "soft_spot-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e979125319c82e8f8b51abbfefc4a182", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 7169, "upload_time": "2019-10-27T06:40:13", "upload_time_iso_8601": "2019-10-27T06:40:13.568446Z", "url": "https://files.pythonhosted.org/packages/ea/19/df449cddfd9ce9c1f12da0de60719b2207585cb8a62b22c53ed9bc56cba9/soft_spot-0.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "48ab3698118c7fd76f13d05c5e9e1850", "sha256": "5ee96687b8814578304e43b0f075a88241399b2df42c9a0173dd6dbe190671a7" }, "downloads": -1, "filename": "soft-spot-0.3.0.tar.gz", "has_sig": false, "md5_digest": "48ab3698118c7fd76f13d05c5e9e1850", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 5572, "upload_time": "2019-10-27T06:40:11", "upload_time_iso_8601": "2019-10-27T06:40:11.965245Z", "url": "https://files.pythonhosted.org/packages/eb/98/e6e93b6aa7f0ab1135e6efdaabd9766282bc929fd3edda655439518b39ad/soft-spot-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "3d0fe22de8891b48237a316bb8614e89", "sha256": "3a1e5ccb89972aff3ca7d8e9fa1ea044c248c8d2ae46cf3cfbf99d8a1bc9f2d1" }, "downloads": -1, "filename": "soft_spot-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3d0fe22de8891b48237a316bb8614e89", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 7565, "upload_time": "2019-11-11T07:05:53", "upload_time_iso_8601": "2019-11-11T07:05:53.253087Z", "url": "https://files.pythonhosted.org/packages/5c/e2/24c1d780a9896f58af1675c7d1fa26d42c2be40c9159ef32755b9b79b122/soft_spot-0.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "de3d5303b8fd03b5002b605cb1173cb8", "sha256": "4301c496da0b7876fdbb8ab37e055a502dfc9e410964cd9e3717ce4d6fc560f6" }, "downloads": -1, "filename": "soft-spot-0.4.0.tar.gz", "has_sig": false, "md5_digest": "de3d5303b8fd03b5002b605cb1173cb8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 6745, "upload_time": "2019-11-11T07:05:51", "upload_time_iso_8601": "2019-11-11T07:05:51.988726Z", "url": "https://files.pythonhosted.org/packages/01/ba/5be8763589e2d6a0321bf8b89f45ca3712e43fb74b1cb5cff14393da536c/soft-spot-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3d0fe22de8891b48237a316bb8614e89", "sha256": "3a1e5ccb89972aff3ca7d8e9fa1ea044c248c8d2ae46cf3cfbf99d8a1bc9f2d1" }, "downloads": -1, "filename": "soft_spot-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3d0fe22de8891b48237a316bb8614e89", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 7565, "upload_time": "2019-11-11T07:05:53", "upload_time_iso_8601": "2019-11-11T07:05:53.253087Z", "url": "https://files.pythonhosted.org/packages/5c/e2/24c1d780a9896f58af1675c7d1fa26d42c2be40c9159ef32755b9b79b122/soft_spot-0.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "de3d5303b8fd03b5002b605cb1173cb8", "sha256": "4301c496da0b7876fdbb8ab37e055a502dfc9e410964cd9e3717ce4d6fc560f6" }, "downloads": -1, "filename": "soft-spot-0.4.0.tar.gz", "has_sig": false, "md5_digest": "de3d5303b8fd03b5002b605cb1173cb8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 6745, "upload_time": "2019-11-11T07:05:51", "upload_time_iso_8601": "2019-11-11T07:05:51.988726Z", "url": "https://files.pythonhosted.org/packages/01/ba/5be8763589e2d6a0321bf8b89f45ca3712e43fb74b1cb5cff14393da536c/soft-spot-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }