{ "info": { "author": "Oliver Berger", "author_email": "diefans@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2.7" ], "description": "docker-events\n=============\n\n\nobjective\n---------\n\n* have a CLI to start a process which runs abitrary code on docker events\n* be able to provide a way to change behavior of and provide data to event subscribers\n* load subscribers by module or file\n* events may be extended\n\n\ninstall\n-------\n\n.. code-block:: shell\n\n # pip install docker-events\n\n\nusage\n-----\n\n.. code-block:: shell\n\n # docker-events --help\n Usage: docker-events [OPTIONS]\n\n Options:\n -s, --sock TEXT the docker socket\n -c, --config FILENAME a config yaml\n -m, --module TEXT a python module to load\n -f, --file PATH a python file to load\n -l, --log PATH logging config\n --debug enable debug log level\n --help Show this message and exit.\n\n # create a config for skydns\n # cat > skydns-config.yaml << EOF\n ---\n\n skydns:\n domain: foo\n\n skydns.containers:\n redis:\n domain: myredis.{domain}\n EOF\n\n # run skydns subscriber on start events\n # docker-events -c skydns-config.yaml -m docker_events.tools.skydns\n\n\n\nAPI\n---\n\nThere are some predefined events: `start`, `stop`, `create`, `die`, `destroy`, `pull`\n\nYou may write your own events like this:\n\n.. code-block:: python\n\n @event\n def pull(client, event_data):\n return event_data.get('status') == 'pull'\n\n\nEvents may be extended by other events:\n\n.. code-block:: python\n\n @docker_events.pull.extend\n def pull_something(client, event_data):\n return event_data['id'].startswith(\"foobar\")\n\n\n\nFor example if you want to use skydns, you may want to put the following code into a file or module and load it via `-m` or `-f` option:\n\n.. code-block:: python\n\n \"\"\"\n setup skydns records for containers\n \"\"\"\n\n import docker_events\n import etcd\n import simplejson as json\n\n\n etcd_client = etcd.Client()\n\n\n @docker_events.start.subscribe\n def set_skydns_record(client, docker_event, config):\n # get ip of container\n container = client.inspect_container(docker_event['id'])\n\n container_name = container['Name'].strip(\"/\")\n container_ip = container['NetworkSettings']['IPAddress']\n\n skydns_config = config.get('skydns', {})\n skydns_containers = config.get('skydns.containers', {\n 'domain': 'docker.local'\n })\n\n # find domain name for this container\n if skydns_config and container_name in skydns_containers:\n # use template\n domain = skydns_containers[container_name].get('domain').format(**skydns_config)\n\n else:\n # join container_name with domain\n domain = '.'.join((container_name, skydns_config.get('domain')))\n\n domain_path = '/'.join(reversed(domain.split('.')))\n\n\n etcd_client.write('/skydns/local/skydns/{}'.format(domain_path), json.dumps({\n 'host': container_ip\n }))", "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/diefans/docker-events", "keywords": "docker events API", "license": "Apache License Version 2.0", "maintainer": null, "maintainer_email": null, "name": "docker-events", "package_url": "https://pypi.org/project/docker-events/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/docker-events/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/diefans/docker-events" }, "release_url": "https://pypi.org/project/docker-events/0.0.10/", "requires_dist": null, "requires_python": null, "summary": "A Python client for docker events API.", "version": "0.0.10" }, "last_serial": 1617039, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "3489a89e24d3ae0d7f83315b1fe76b20", "sha256": "f3e5b1f667b9f702e41766e1211c7a205621af03ad68f6dbf18a4cb4ca3a8a02" }, "downloads": -1, "filename": "docker_events-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3489a89e24d3ae0d7f83315b1fe76b20", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5182, "upload_time": "2015-06-23T15:05:56", "url": "https://files.pythonhosted.org/packages/44/f3/3927a26201566915b905d914ed75f58e50e6931764ff366440161a608079/docker_events-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f577a8623224d256d6c0cce60a9c1408", "sha256": "d9c0471d10f82acd6e84d24f104614c2344153b9f35f79c7bec788be3fe1c93e" }, "downloads": -1, "filename": "docker-events-0.0.1.tar.gz", "has_sig": false, "md5_digest": "f577a8623224d256d6c0cce60a9c1408", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3582, "upload_time": "2015-06-23T15:06:03", "url": "https://files.pythonhosted.org/packages/f3/2d/7f256ace2331f6ca21cecd75b2f37b769445b91e59ea46c7c4d19bbc9dde/docker-events-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "f83dae74925d8b30ad60e8446dbf6953", "sha256": "c4b8b2cc6c602404f6d8c16d0f2a77145b9e108fe7b65448c2e593f86f2251e4" }, "downloads": -1, "filename": "docker_events-0.0.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f83dae74925d8b30ad60e8446dbf6953", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8508, "upload_time": "2015-07-02T19:01:15", "url": "https://files.pythonhosted.org/packages/c4/a0/6ed0d8020fdf57ce02f2077a13e8d5c0fd2b3b1cbeaed5184a7f8fdb8305/docker_events-0.0.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad2a48af16cc65918d27d67fb0a0b1d3", "sha256": "cfb66daa5e7e9d9affac05edb6464657798ad73d9acd92d3e1a894c6aa6aac31" }, "downloads": -1, "filename": "docker-events-0.0.10.tar.gz", "has_sig": false, "md5_digest": "ad2a48af16cc65918d27d67fb0a0b1d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5254, "upload_time": "2015-07-02T19:01:18", "url": "https://files.pythonhosted.org/packages/be/7a/1f9a01569c56dd33c2574c99a4b7fcdbc665d1d951f35e7f82bc99853b2d/docker-events-0.0.10.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "cccccdbc4821010080929ba12c833da6", "sha256": "a6d3f215a61ef30790e86997f18b654821af6f825d53d2025562ce6623db561c" }, "downloads": -1, "filename": "docker_events-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cccccdbc4821010080929ba12c833da6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6060, "upload_time": "2015-06-23T18:46:31", "url": "https://files.pythonhosted.org/packages/ac/c3/190aa023c8f6181d13e44ba9446e621d4b678c0f5ae16791e266e5a9462f/docker_events-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "164f899ce6d71322c8beb6aa5f4607c1", "sha256": "22eb4071c66cfcd87676bb27cb3dc8e635bef7338c14278d84cddf67e87a3f94" }, "downloads": -1, "filename": "docker-events-0.0.2.tar.gz", "has_sig": false, "md5_digest": "164f899ce6d71322c8beb6aa5f4607c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3965, "upload_time": "2015-06-23T18:46:35", "url": "https://files.pythonhosted.org/packages/9b/e4/52038479dcceed7b0ef01aa4d9966aeaebcca5e55815d106af9b7d42bd43/docker-events-0.0.2.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "7b6518496fac1bdee10d155b9e5b776c", "sha256": "b991411db042f0463e60ba3d54b2d8e9236255df964999b87bf2c88ba1a4e009" }, "downloads": -1, "filename": "docker_events-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b6518496fac1bdee10d155b9e5b776c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8360, "upload_time": "2015-06-23T19:37:22", "url": "https://files.pythonhosted.org/packages/ac/71/430438dfb161919804300482f2fa48610354843e90e88d4f87a53c2c32e0/docker_events-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "65783cf9523985a83fda39b2b716a2d1", "sha256": "be9760d96410f8499a955bd62487e18fb4be15d2b8a7803018b07dd45130b108" }, "downloads": -1, "filename": "docker-events-0.0.4.tar.gz", "has_sig": false, "md5_digest": "65783cf9523985a83fda39b2b716a2d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5122, "upload_time": "2015-06-23T19:37:26", "url": "https://files.pythonhosted.org/packages/de/d3/66910b56e1d00b9ce91e588f0dc01194ba344ccedede7e62480c5454cd50/docker-events-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "68f84555d5c3c50110e940f3e667c2d2", "sha256": "89c04b2dd9ebc4e12af5c904ae88651ce9ff3189a755f9639b371e515d60e095" }, "downloads": -1, "filename": "docker_events-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "68f84555d5c3c50110e940f3e667c2d2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8371, "upload_time": "2015-06-23T20:34:21", "url": "https://files.pythonhosted.org/packages/e6/30/4c448ba249a3f123ba6df36a6cf9bd7b99d6963712a9c541a65ad9c61ac9/docker_events-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0c5d8d70f2af2e89fb46d94f3329aec9", "sha256": "45abb40e5fbfdcaa481a9fd41847eb5e64efaf36a73cce97c706b4a9ac9aa010" }, "downloads": -1, "filename": "docker-events-0.0.5.tar.gz", "has_sig": false, "md5_digest": "0c5d8d70f2af2e89fb46d94f3329aec9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5129, "upload_time": "2015-06-23T20:34:24", "url": "https://files.pythonhosted.org/packages/e0/cc/ed19469391ae8fe83cc1811c0f94ae6a51a6e0deb988c7a9dc79652e220b/docker-events-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "4b111063002a5ed0f8609747ea9fc655", "sha256": "8508624671e870bf8e0795cca469fcdafe2f6a0c83edb051009b0433ee6684f2" }, "downloads": -1, "filename": "docker_events-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4b111063002a5ed0f8609747ea9fc655", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8381, "upload_time": "2015-06-23T20:38:45", "url": "https://files.pythonhosted.org/packages/d2/b8/5abb4dc3869458131e1f0b9dddbd4b5ff56c8e0f94879e4c53d7ae7ffcf8/docker_events-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f00f698c86b94cf02b8a8510292081a4", "sha256": "9f7b9ee56ccf4d635445102a3f19c7e40dd5f5c7baea134c11f75a5de5c76194" }, "downloads": -1, "filename": "docker-events-0.0.6.tar.gz", "has_sig": false, "md5_digest": "f00f698c86b94cf02b8a8510292081a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5140, "upload_time": "2015-06-23T20:38:49", "url": "https://files.pythonhosted.org/packages/56/a2/1dd8f84fada6a02a28acbe8aab2b07a6edf4861c8d2c5ac679781f937374/docker-events-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "b95906652176698d23f0279b26a83683", "sha256": "575862516d933f75509a262da051905a504bf9c5090c2dbdb1ee385d1adf8b39" }, "downloads": -1, "filename": "docker_events-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b95906652176698d23f0279b26a83683", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8377, "upload_time": "2015-06-23T20:47:57", "url": "https://files.pythonhosted.org/packages/b6/92/b7a23fb29aa6cdeddb8994dea4b1ad19c360fa2e2ddbfb996ebb4d5bb570/docker_events-0.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf8593e93f840e3f525a7adb22cb4641", "sha256": "77ffcbdbc7fec2052cccd5bfc44840ef1c565413532256fbccd92d5576945dcd" }, "downloads": -1, "filename": "docker-events-0.0.7.tar.gz", "has_sig": false, "md5_digest": "bf8593e93f840e3f525a7adb22cb4641", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5142, "upload_time": "2015-06-23T20:48:01", "url": "https://files.pythonhosted.org/packages/d6/b1/baa8469d1d5d784dd25f05d00b8c04a44d0b452c002814dbfd241e0f8ac4/docker-events-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "16a21db661d45428a71bfb2abe9b04fb", "sha256": "d6200c4d93a0e8b814c28bdf39c5e39d6cdaadb84ec6ec75a8f49759d6f5a29f" }, "downloads": -1, "filename": "docker_events-0.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "16a21db661d45428a71bfb2abe9b04fb", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8384, "upload_time": "2015-06-23T20:53:42", "url": "https://files.pythonhosted.org/packages/76/7c/8352c1141f4295fe9ded382937da6276e690213014f1908bf2e8de733642/docker_events-0.0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9df059d6ef3aeb66dd2c2a6f3905a1a", "sha256": "46b46c1fd25dba37a8ca23356578cd6acd43209f197704ca5283d11ff2cc242d" }, "downloads": -1, "filename": "docker-events-0.0.8.tar.gz", "has_sig": false, "md5_digest": "b9df059d6ef3aeb66dd2c2a6f3905a1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5168, "upload_time": "2015-06-23T20:53:46", "url": "https://files.pythonhosted.org/packages/00/93/4d9d1c594ee1dbe346903d97f90ebccedc434d32d5973fd2383a8888b6d8/docker-events-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "584b15b33f1716d59bc1459777a4ae40", "sha256": "5ee44cf8257b1147507d7d6eaf9e47b391d24db18ada88139636ebc29b524876" }, "downloads": -1, "filename": "docker_events-0.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "584b15b33f1716d59bc1459777a4ae40", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8389, "upload_time": "2015-06-23T20:56:01", "url": "https://files.pythonhosted.org/packages/96/35/2fd19555a8c0bb0e640af03e3847a5228f54e7ba57d1abdb1f87c72676c2/docker_events-0.0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0681e56a0fba7d1d5bc44030137e9b72", "sha256": "f1a3460774cf01544810d675f521a99d051d56034be3db506635c8b716246aba" }, "downloads": -1, "filename": "docker-events-0.0.9.tar.gz", "has_sig": false, "md5_digest": "0681e56a0fba7d1d5bc44030137e9b72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5164, "upload_time": "2015-06-23T20:56:06", "url": "https://files.pythonhosted.org/packages/08/32/b17b3c1a9a4cba74cabb2ba5657a36c68beb0c6cd7e70815fef8ef757f92/docker-events-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f83dae74925d8b30ad60e8446dbf6953", "sha256": "c4b8b2cc6c602404f6d8c16d0f2a77145b9e108fe7b65448c2e593f86f2251e4" }, "downloads": -1, "filename": "docker_events-0.0.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f83dae74925d8b30ad60e8446dbf6953", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8508, "upload_time": "2015-07-02T19:01:15", "url": "https://files.pythonhosted.org/packages/c4/a0/6ed0d8020fdf57ce02f2077a13e8d5c0fd2b3b1cbeaed5184a7f8fdb8305/docker_events-0.0.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad2a48af16cc65918d27d67fb0a0b1d3", "sha256": "cfb66daa5e7e9d9affac05edb6464657798ad73d9acd92d3e1a894c6aa6aac31" }, "downloads": -1, "filename": "docker-events-0.0.10.tar.gz", "has_sig": false, "md5_digest": "ad2a48af16cc65918d27d67fb0a0b1d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5254, "upload_time": "2015-07-02T19:01:18", "url": "https://files.pythonhosted.org/packages/be/7a/1f9a01569c56dd33c2574c99a4b7fcdbc665d1d951f35e7f82bc99853b2d/docker-events-0.0.10.tar.gz" } ] }