{
"info": {
"author": "Jason Antman",
"author_email": "jason@jasonantman.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 1 - Planning",
"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
"Programming Language :: Python",
"Programming Language :: Python :: 3"
],
"description": "ecsjobs\n=======\n\n.. image:: http://www.repostatus.org/badges/latest/active.svg\n :alt: Project Status: Active \u2013 The project has reached a stable, usable state and is being actively developed.\n :target: http://www.repostatus.org/#active\n\n* Documentation: `http://ecsjobs.readthedocs.io/en/latest/ `_\n* Builds: `https://travis-ci.org/jantman/ecsjobs `_\n\nA scheduled job wrapper for ECS, focused on email reporting and adding docker exec and local command abilities.\n\nThis is a very, very esoteric project with a really niche use case.\n\nI've migrated my very small personal AWS infrastructure to a single t2.micro ECS instance. I'm also trying to migrate some of\nmy personal stuff from my desktop computer to that instance. I need a way to run scheduled tasks and report on their success\nor failure, and maybe some output (I have a cron wrapper script that does this on my desktop). But my AWS spend is about $15/month\nand I don't want to go over that just because of a bunch of CloudWatch alarms. Also, sometimes the scheduled things I want\nto run are really ``docker exec`` into existing task containers.\n\nThis is a Python project (distributed as an ECS-ready Docker image) that aims to handle running scheduled things\nand then sending an email report on their success or failure. The main shortcomings this intends to address are\nthe lack of simple built-in failure monitoring for Scheduled ECS Tasks, the lack of a built-in way to execute a\ncommand in a running (ECS Service) container, and the lack of useful email reports.\n\nThe generated email reports look like (this one for ``exampleconfig.yml``):\n\n.. image:: https://raw.githubusercontent.com/jantman/ecsjobs/master/docs/source/report.png\n :alt: screenshot of generated HTML email report\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/jantman/ecsjobs",
"keywords": "aws ecs cron email docker",
"license": "",
"maintainer": "",
"maintainer_email": "",
"name": "ecsjobs",
"package_url": "https://pypi.org/project/ecsjobs/",
"platform": "",
"project_url": "https://pypi.org/project/ecsjobs/",
"project_urls": {
"Homepage": "https://github.com/jantman/ecsjobs"
},
"release_url": "https://pypi.org/project/ecsjobs/0.4.1/",
"requires_dist": [
"boto3 (<2.0.0,>=1.0.0)",
"cronex (==0.1.0)",
"docker (<3.0.0,>=2.0.0)",
"jsonschema (<3.0.0,>=2.0.0)",
"PyYAML (<4.0,>=3.0)",
"requests (<3.0.0,>=2.0.0)"
],
"requires_python": "",
"summary": "A scheduled job wrapper for ECS, focused on email reporting and adding docker exec and local command abilities.",
"version": "0.4.1"
},
"last_serial": 4160522,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "cd055ca1b82cea9216b496a1f0e8b6d6",
"sha256": "9e21636bcd27d19f15365141fcab669733842ac762541442a803a4f7a6f1b1bd"
},
"downloads": -1,
"filename": "ecsjobs-0.1.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "cd055ca1b82cea9216b496a1f0e8b6d6",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 9399,
"upload_time": "2017-11-19T02:35:50",
"url": "https://files.pythonhosted.org/packages/3f/c9/4b960c8c6bd7ce8b0fc59c5a31244011a3d092787d2d428c39f6af52e1c8/ecsjobs-0.1.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "35ce2bb27ec39a89cd4d820c29d461d0",
"sha256": "9747eb9bc3849069a632160812a6f0318dd582017ace4e533f5c864e81cb5c9e"
},
"downloads": -1,
"filename": "ecsjobs-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "35ce2bb27ec39a89cd4d820c29d461d0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16304,
"upload_time": "2017-11-19T02:35:53",
"url": "https://files.pythonhosted.org/packages/5b/d4/b0b3baf778927a4d92f52c38a401276cafd740835f79cb6b32759b8214ce/ecsjobs-0.1.0.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "67057484043e054df718e5514747fcb8",
"sha256": "fd48c8c2602a7d9d8e56c573b9db8b01cd7474741459a9ed93162750938b669b"
},
"downloads": -1,
"filename": "ecsjobs-0.2.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "67057484043e054df718e5514747fcb8",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 68670,
"upload_time": "2017-11-30T23:01:27",
"url": "https://files.pythonhosted.org/packages/9f/0b/88af5b66c4e08fcdf56a0a1e0a2b2b08a64e3334391a3920f4946aebd9f1/ecsjobs-0.2.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "0b6bd385f1f221a8bec22833156a97d3",
"sha256": "f651022d20a7e347657a2762483ac80d4e49c2933ea457d022d89d3521c00287"
},
"downloads": -1,
"filename": "ecsjobs-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "0b6bd385f1f221a8bec22833156a97d3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 47006,
"upload_time": "2017-11-30T23:01:29",
"url": "https://files.pythonhosted.org/packages/3a/c4/a5ffe0cd8816009361cd63e6350df92954d35cc6e3523b356eff68f9914e/ecsjobs-0.2.0.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "19e5e9d266259e6b709bc3fa18f4c89a",
"sha256": "b4c0c9e583f180b6891bd34a65835306d31777b865144fb6fa49111a416f47bd"
},
"downloads": -1,
"filename": "ecsjobs-0.3.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "19e5e9d266259e6b709bc3fa18f4c89a",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 69606,
"upload_time": "2017-12-01T22:54:35",
"url": "https://files.pythonhosted.org/packages/eb/d6/b53ad17145a0831aae946fb3c10a10aa3ae02b17ef53baec1b7c2bfa6615/ecsjobs-0.3.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5d508f0fb0161eabe9448b660dc2fa3d",
"sha256": "4fa24801b81b62ef06faf2e16ed9a6551a27641e884d63371cb4d140998478e2"
},
"downloads": -1,
"filename": "ecsjobs-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "5d508f0fb0161eabe9448b660dc2fa3d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 48220,
"upload_time": "2017-12-01T22:54:36",
"url": "https://files.pythonhosted.org/packages/67/b6/d61b03cb836f2d2a8690153374cbe53a350eb01a526d42a63d40ce79f24d/ecsjobs-0.3.0.tar.gz"
}
],
"0.4.0": [
{
"comment_text": "",
"digests": {
"md5": "01e657708ae73a1d7bddf28004cc65cf",
"sha256": "258376fcb4c66f78c22ead1dfffe66527ff22ae5dfe6b7de87751f8cb1d6e99f"
},
"downloads": -1,
"filename": "ecsjobs-0.4.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "01e657708ae73a1d7bddf28004cc65cf",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 70590,
"upload_time": "2018-02-25T18:39:17",
"url": "https://files.pythonhosted.org/packages/b0/b3/b18e26703496c9b69285fd5f0b7231b2b90d9ab8584b4d626d4d56343e5e/ecsjobs-0.4.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f6a20346de9e6d2a5741914834659d56",
"sha256": "a6fdd0352e83190a9dd3a3bf329382da843bae5d574403a9bbe192d8ac78f595"
},
"downloads": -1,
"filename": "ecsjobs-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "f6a20346de9e6d2a5741914834659d56",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 49291,
"upload_time": "2018-02-25T18:39:19",
"url": "https://files.pythonhosted.org/packages/04/18/23fc7fdc48d60bfc5c419371811da1844b98adfe09f51f4d17ec50e7189d/ecsjobs-0.4.0.tar.gz"
}
],
"0.4.1": [
{
"comment_text": "",
"digests": {
"md5": "8965da9902629486b3e4609f49d3c1ca",
"sha256": "dc3f356504fb7736733920d04f1e1794eedd860fa03bd200c12e34868204476b"
},
"downloads": -1,
"filename": "ecsjobs-0.4.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "8965da9902629486b3e4609f49d3c1ca",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 70802,
"upload_time": "2018-08-11T23:00:58",
"url": "https://files.pythonhosted.org/packages/51/5f/81d466e6b11d0cb921e910efa7a5d72be2d0674d4049f09f8c78bb8ed16b/ecsjobs-0.4.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2ca04e557213e6ebd62a7964172cd2b2",
"sha256": "f4a557f44a9e95e7dbb83e54ebf0fe98a246130a932aceeeebf55e7083c349b2"
},
"downloads": -1,
"filename": "ecsjobs-0.4.1.tar.gz",
"has_sig": false,
"md5_digest": "2ca04e557213e6ebd62a7964172cd2b2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 49559,
"upload_time": "2018-08-11T23:00:59",
"url": "https://files.pythonhosted.org/packages/05/31/352cc9bcf501d7b72f0df72961fdf93930412996f28fa26cb79d4d107263/ecsjobs-0.4.1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "8965da9902629486b3e4609f49d3c1ca",
"sha256": "dc3f356504fb7736733920d04f1e1794eedd860fa03bd200c12e34868204476b"
},
"downloads": -1,
"filename": "ecsjobs-0.4.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "8965da9902629486b3e4609f49d3c1ca",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 70802,
"upload_time": "2018-08-11T23:00:58",
"url": "https://files.pythonhosted.org/packages/51/5f/81d466e6b11d0cb921e910efa7a5d72be2d0674d4049f09f8c78bb8ed16b/ecsjobs-0.4.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2ca04e557213e6ebd62a7964172cd2b2",
"sha256": "f4a557f44a9e95e7dbb83e54ebf0fe98a246130a932aceeeebf55e7083c349b2"
},
"downloads": -1,
"filename": "ecsjobs-0.4.1.tar.gz",
"has_sig": false,
"md5_digest": "2ca04e557213e6ebd62a7964172cd2b2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 49559,
"upload_time": "2018-08-11T23:00:59",
"url": "https://files.pythonhosted.org/packages/05/31/352cc9bcf501d7b72f0df72961fdf93930412996f28fa26cb79d4d107263/ecsjobs-0.4.1.tar.gz"
}
]
}