{ "info": { "author": "Boik Su", "author_email": "boik@tdohacker.org", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Software Development", "Topic :: Terminals", "Topic :: Utilities" ], "description": "Tsaotun - Python based Assistance for Docker\n############################################\n\n**Q: I can't figure out why I would need this**\n\nA: \n\nIn traditional ways, we make aliases ourselves all over the Docker commands.\n\nThe reason why I develop this project is to encourage people to contribute and share their ideas and thoughts into plugins, which would give Tsaotun ability to do those things. And, the aboved thing is just one of things that Tsaotun can achieve, you will be able to load variety of plugins in the future as well.\n\nBesides, if you are doing some projects involved running containers, Tsaotun has provide the higher level API for you. That is another helpful functionality.\n\nCurrently, I'm moving my previous project `VWGen`_ into one of Tsaotun's plugin. Once I finish, everyone can just load the plugin and extend the power of Tsaotun.\n\n\n.. class:: no-web\n\n .. image:: http://i.imgur.com/WRkfRoq.png\n :alt: Higher level API\n :width: 100%\n :align: center\n\n\n.. class:: no-web no-pdf\n\n|pypi| |unix_docker| |mac_docker| |windows_docker|\n\n\n\n.. contents::\n\n.. section-numbering::\n\n\nMain features\n=============\n\n* Run any commands docker can run on Tsaotun\n* All written in Python with love of API of docker\n* Simplify the process making your own implementation of docker command line tool\n* Many Addons are upcoming\n\n\nInstallation (All platforms)\n============================\n\n\npip\n---\n\n\nA universal installation method (that works on Windows, Mac OS X, Linux, and always provides the latest version) is to use `pip`_:\n\n\n.. code-block:: bash\n\n # Make sure we have an up-to-date version of pip and setuptools:\n $ pip install --upgrade pip setuptools\n\n $ pip install --upgrade tsaotun\n\n\n(If ``pip`` installation fails for some reason, you can try\n``easy_install tsaotun`` as a fallback.)\n\n\nDocker hub\n----------\n\nPull from `dockerhub`_, or build it yourself:\n\n\n.. code-block:: bash\n\n $ docker build -t tsaotun .\n\n\nVerify that now we have installed the latest version, for example:\n\n\n.. code-block:: bash\n\n $ tsaotun version\n Client:\n Version: 0.8.1\n Python version: 2.7.13\n OS/Arch: Darwin/x86_64\n\n Server:\n Version: 1.13.0-rc7\n API version: 1.25 (minimum version 1.12)\n Go version: go1.7.3\n Git commit: 48a9e53\n Built: 5 days ago\n OS/Arch: linux/amd64\n Kernel version: 4.9.3-moby\n Experimental: True\n\n\nUsage\n=====\n\n\nHello World:\n\n\n.. code-block:: bash\n\n $ tsaotun [COMMAND]\n\n\nSynopsis:\n\n.. code-block:: bash\n\n $ tsaotun [-h] [--console] [--color] [--debug] [--dry] [--host list]\n [--verbose]\n {version,info,inspect,container,image,network,volume,addon}\n ...\n\n\nSee also ``tsaotun --help``.\n\n\nAddon\n=====\n\nAddon feature is testing right now, and each addon should has its own folder with ``__init__.py`` inside.\n\nAddon folder struture shows like:\n\n::\n\n $HOME\n \u2514\u2500\u2500\u2500Tsaotun\n \u2514\u2500\u2500\u2500addons\n \u251c\u2500\u2500 addon_A - __init__.py, ...\n \u251c\u2500\u2500 addon_B - __init__.py, ...\n \u2514\u2500\u2500\u2500__init__.py\n\n\nBest practices (Sample addon to remove \"ALL\" containers at once, no matter it's dead or alive)\n----------------------------------------------------------------------------------------------\n\n**__init__.py: To specify how to override the original command**\n\n.. code-block:: python\n\n \"\"\"Configuration file for this addon\"\"\"\n\n from .Container import rm\n\n __override__ = {'Container.rm': 'Rm'}\n __argparse__ = [\n {\n 'namespace': \"Container\",\n 'position': \"Child\",\n 'subcommand': \"rm\",\n 'actions': [\n \"add_argument('--clear', \\\n action='store_true', \\\n dest='clear', \\\n help='Remove all dead and alive containers. \\\n You still need to give a whatever container ID.')\",\n ],\n },\n ]\n\n\n**Container/rm.py**\n\n.. code-block:: python\n\n \"\"\"This module contains `docker container rm` class\"\"\"\n\n from docker.errors import APIError\n from tsaotun.lib.Docker.Container.command import Command\n from tsaotun.cli import Tsaotun\n\n\n class Rm(Command):\n \"\"\"This class implements `docker container rm` command\"\"\"\n\n name = \"container rm\"\n require = []\n\n def __init__(self):\n Command.__init__(self)\n self.settings[self.name] = None\n\n def eval_command(self, args):\n try:\n containers = args[\"containers\"]\n clear = args[\"clear\"]\n del args[\"containers\"]\n del args[\"clear\"]\n Ids = []\n if clear:\n cli = Tsaotun()\n cli.send('ps -a --format {{Id}}')\n ress = cli.recv()\n if ress:\n ress = ress.split('\\n')\n ress = [res[0:4] for res in ress]\n for Id in ress:\n Ids.append(Id)\n args['container'] = Id\n self.client.remove_container(**args)\n else:\n for Id in containers:\n Ids.append(Id)\n args['container'] = Id\n self.client.remove_container(**args)\n self.settings[self.name] = '\\n'.join(Ids)\n\n except APIError as e:\n raise e\n\n def final(self):\n return self.settings[self.name]\n\n\nLicence\n=======\n\nApache License v2.0: `LICENSE `_.\n\n\nAuthor\n======\n\n`Boik Su`_ (`@qazbnm456`_) created Tsaotun.\n\n\n.. _pip: http://www.pip-installer.org/en/latest/index.html\n.. _dockerhub: https://hub.docker.com/r/qazbnm456/tsaotun/\n.. _VWGen: VWGen\n.. _Boik Su: https://github.com/qazbnm456\n.. _@qazbnm456: https://twitter.com/qazbnm456\n\n\n.. |pypi| image:: https://img.shields.io/pypi/v/tsaotun.svg?style=flat-square&label=latest%20stable%20version\n :target: https://pypi.python.org/pypi/tsaotun\n :alt: Latest version released on PyPi\n\n.. |unix_docker| image:: https://img.shields.io/badge/docker%20version-1.13.0-blue.svg\n :alt: Compatible on Linux\n\n.. |mac_docker| image:: https://img.shields.io/badge/docker%20version-1.13.0-blue.svg\n :alt: Compatible on Mac\n\n.. |windows_docker| image:: https://img.shields.io/badge/docker%20version-1.13.0-blue.svg\n :alt: Compatible on Windows\n", "description_content_type": null, "docs_url": null, "download_url": "https://codeload.github.com/qazbnm456/tsaotun/tar.gz/0.9.4", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/qazbnm456/tsaotun", "keywords": "0.9.4", "license": "", "maintainer": "", "maintainer_email": "", "name": "tsaotun", "package_url": "https://pypi.org/project/tsaotun/", "platform": "", "project_url": "https://pypi.org/project/tsaotun/", "project_urls": { "Download": "https://codeload.github.com/qazbnm456/tsaotun/tar.gz/0.9.4", "Homepage": "https://github.com/qazbnm456/tsaotun" }, "release_url": "https://pypi.org/project/tsaotun/0.9.4/", "requires_dist": null, "requires_python": "", "summary": "Python based Assistance for Docker", "version": "0.9.4" }, "last_serial": 3404671, "releases": { "0.8.1": [ { "comment_text": "", "digests": { "md5": "891a645f9b411dd5165ffef8e28deff7", "sha256": "2a3b0163f9f90eb5f0f67dffb7df3b2edf00cd8d0fffd374dfb990d3b2bff5fc" }, "downloads": -1, "filename": "tsaotun-0.8.1.tar.gz", "has_sig": false, "md5_digest": "891a645f9b411dd5165ffef8e28deff7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29231, "upload_time": "2017-01-15T08:24:27", "url": "https://files.pythonhosted.org/packages/a6/e3/fd7e56eaf311fcdc04c2cc3c822037f115e3cffb503a16a18dbbd3ee4e7a/tsaotun-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "12fe24a63c975f1e1ef0473641474dfa", "sha256": "448491259dcfc6b8a02b89da5d08004b79d9431c127f601ce6b4b0fcc0eb6db4" }, "downloads": -1, "filename": "tsaotun-0.8.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "12fe24a63c975f1e1ef0473641474dfa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 68477, "upload_time": "2017-01-19T03:18:23", "url": "https://files.pythonhosted.org/packages/a0/de/ef91388001db430396bea28603f85e4c0ae930af41c1b3bf7569364378bf/tsaotun-0.8.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a2aba3fb97379ade0ab4bdb21db1f8d2", "sha256": "74e22ecc500cf382a826232c4bc06a8151b5d661c3987bd8453770c36923e2b8" }, "downloads": -1, "filename": "tsaotun-0.8.2.tar.gz", "has_sig": false, "md5_digest": "a2aba3fb97379ade0ab4bdb21db1f8d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37667, "upload_time": "2017-01-19T03:18:26", "url": "https://files.pythonhosted.org/packages/fa/eb/f5a397d3e81d657c5950e32ee77efd5d4957fa49562a2ee587f0a6b1aa0a/tsaotun-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "b18270ca767dd72883ad2d32a88f0676", "sha256": "0d8423670e9ed8f614382d7b73909c6fb529b7ddb702a2e86b74df0ff689d9c5" }, "downloads": -1, "filename": "tsaotun-0.8.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b18270ca767dd72883ad2d32a88f0676", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 66113, "upload_time": "2017-01-19T03:41:38", "url": "https://files.pythonhosted.org/packages/e3/58/57694d4899d7e912d558b4cd15765c657e85b4c53de16143e787a04a300d/tsaotun-0.8.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c68b5ab1988375b8efc9d13ecaff8a12", "sha256": "d45a865e5979495d362cf5d3ffa50480711cf728e3dd97d62abd7b7d5da291bb" }, "downloads": -1, "filename": "tsaotun-0.8.3.tar.gz", "has_sig": false, "md5_digest": "c68b5ab1988375b8efc9d13ecaff8a12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37734, "upload_time": "2017-01-19T03:41:42", "url": "https://files.pythonhosted.org/packages/1f/65/c4a7fc7768ea5fab52fd0061d6f6b8249d213dbfe7c5f879a17d467a86e3/tsaotun-0.8.3.tar.gz" } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "c753930b0e6aac42979a36e22c4ad3c2", "sha256": "758f7a2e09b3ebcb499f56ed5e68a7498b8354699bd94d9744c4cd2efa5f77f2" }, "downloads": -1, "filename": "tsaotun-0.8.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c753930b0e6aac42979a36e22c4ad3c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 67388, "upload_time": "2017-01-19T08:46:03", "url": "https://files.pythonhosted.org/packages/e3/cc/7b9d64f22729cc686d10bf20719a63b5b26104dbc9d6291e7c04c01ad536/tsaotun-0.8.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4b483e11df35bbbef7be34ea9b392c7", "sha256": "ef8383c6ad04f6096a5c5b9ff030a35fe7d5ddca9ddd0bc0afe633ce362e5e9b" }, "downloads": -1, "filename": "tsaotun-0.8.4.tar.gz", "has_sig": false, "md5_digest": "d4b483e11df35bbbef7be34ea9b392c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38458, "upload_time": "2017-01-19T08:45:57", "url": "https://files.pythonhosted.org/packages/dd/94/0af709cd768ebce7c2660bb5f6bc761ffee8ac8650b8052481dc209f9a45/tsaotun-0.8.4.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "e19212583e77c543cb23b81b7a00b448", "sha256": "1e592e6bded5a1a886cb4fdc1b6ce3ec51624c6a86d985acfc2f07791ac7fec9" }, "downloads": -1, "filename": "tsaotun-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e19212583e77c543cb23b81b7a00b448", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 68219, "upload_time": "2017-01-20T06:00:55", "url": "https://files.pythonhosted.org/packages/63/fb/cd61462b20333a5212c107f0b72bb51b6008dd8d9bda42291f08fb876f0b/tsaotun-0.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88c097287b837157e25c2043cc404bfe", "sha256": "ae67f60e6d1e62a24c0ac87010d5d41cf1916c0a0b47cfc1e3a45f9d75808e7f" }, "downloads": -1, "filename": "tsaotun-0.9.0.tar.gz", "has_sig": false, "md5_digest": "88c097287b837157e25c2043cc404bfe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53278, "upload_time": "2017-01-20T06:00:52", "url": "https://files.pythonhosted.org/packages/bb/6f/2fcd180e07e6a988bff18d7f262237d86e29f05944c977f6965f90bb0ab6/tsaotun-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "c7f35c1086489b1cebaae184ffc21079", "sha256": "91f19aca80df50e1cbe68ccd79b55e96e6d1c6df9ceb43714fca0e943eda3559" }, "downloads": -1, "filename": "tsaotun-0.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c7f35c1086489b1cebaae184ffc21079", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 67867, "upload_time": "2017-01-21T17:03:38", "url": "https://files.pythonhosted.org/packages/dc/03/126b8ff71627e51e02115b45f582cfc1659b7fe059b150d75ef69530981c/tsaotun-0.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "810701fbd48d3dcc0a3cf9170a83a2ce", "sha256": "dd32cff1abcaa0d85a8d146e5174453eb1819696f7b175883d1bbfebac9d6014" }, "downloads": -1, "filename": "tsaotun-0.9.1.tar.gz", "has_sig": false, "md5_digest": "810701fbd48d3dcc0a3cf9170a83a2ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53599, "upload_time": "2017-01-21T17:03:35", "url": "https://files.pythonhosted.org/packages/ac/8c/f4ee43c982581052a14f4a291a6db71827d11f4fde84850a040498413c85/tsaotun-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "c7bd097684688c55b4b112bad069bd66", "sha256": "e51900aafb9496bc6679b8f42869b9dcf08ff962d1b965f1ab4f4bd2e6532d61" }, "downloads": -1, "filename": "tsaotun-0.9.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c7bd097684688c55b4b112bad069bd66", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 67871, "upload_time": "2017-01-21T17:22:33", "url": "https://files.pythonhosted.org/packages/75/21/6209c022bd1c88b1424984060f763dd2f7bbd43b42632ec096c10aeb08a5/tsaotun-0.9.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a3c7aa5560da7a167aa740652c1958d", "sha256": "3ba0d2eb9958fcf866ed3300eb6fafe2d2c255d9f36948c15c78f30524b777a6" }, "downloads": -1, "filename": "tsaotun-0.9.2.tar.gz", "has_sig": false, "md5_digest": "3a3c7aa5560da7a167aa740652c1958d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53625, "upload_time": "2017-01-21T17:22:29", "url": "https://files.pythonhosted.org/packages/7e/a7/0e68be3a6413f1d31fc68dc838001fd252fcbeb7d3f0d8bdf16afa1c1db4/tsaotun-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "c3011299efbcfc5d1ecb1d11bba914ad", "sha256": "d8fc8de91e0a4e2cf0da91d228baf8bcdf8fc70520ba69044789f4f911a68ccd" }, "downloads": -1, "filename": "tsaotun-0.9.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c3011299efbcfc5d1ecb1d11bba914ad", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 68751, "upload_time": "2017-01-26T15:10:22", "url": "https://files.pythonhosted.org/packages/f7/0f/0e2754a62ff937adf85e0423518b87f463134e20c2f18fcac57777b98898/tsaotun-0.9.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f87491a6d32d4626047380fa9dcf5b5", "sha256": "54fffaf8756652931a8245524447362e1cb3ef494bc7b7645ceca2df5906310e" }, "downloads": -1, "filename": "tsaotun-0.9.3.tar.gz", "has_sig": false, "md5_digest": "2f87491a6d32d4626047380fa9dcf5b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54087, "upload_time": "2017-01-26T15:10:19", "url": "https://files.pythonhosted.org/packages/21/5d/ca73ecb38e444676a9c925e51c7b9265ac84d8b838a3ed8ca5db241db8f6/tsaotun-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "878321209aa2a97b1f29fc18220bd2a5", "sha256": "1055c9eed53f8a9006e1d9c88571051f27bc1d72f149b7e3864f3d045d3ca86b" }, "downloads": -1, "filename": "tsaotun-0.9.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "878321209aa2a97b1f29fc18220bd2a5", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 69675, "upload_time": "2017-12-10T05:22:34", "url": "https://files.pythonhosted.org/packages/27/6e/0ad6dc5fa121e0794eee8a9d0d0011bd7f5e95749ed19285e1b2d4775366/tsaotun-0.9.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c128d391e906349501e3573b2985900", "sha256": "43dab51e2e2ec9a8593655ae0bfeb6b82f9a0f7ce2bade226dbb95b3b56ce52e" }, "downloads": -1, "filename": "tsaotun-0.9.4.tar.gz", "has_sig": false, "md5_digest": "5c128d391e906349501e3573b2985900", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54216, "upload_time": "2017-12-10T05:22:31", "url": "https://files.pythonhosted.org/packages/30/a2/5f85137c990c875103da223418c1e23de35fd211f1bf080079e0bc4d8480/tsaotun-0.9.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "878321209aa2a97b1f29fc18220bd2a5", "sha256": "1055c9eed53f8a9006e1d9c88571051f27bc1d72f149b7e3864f3d045d3ca86b" }, "downloads": -1, "filename": "tsaotun-0.9.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "878321209aa2a97b1f29fc18220bd2a5", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 69675, "upload_time": "2017-12-10T05:22:34", "url": "https://files.pythonhosted.org/packages/27/6e/0ad6dc5fa121e0794eee8a9d0d0011bd7f5e95749ed19285e1b2d4775366/tsaotun-0.9.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c128d391e906349501e3573b2985900", "sha256": "43dab51e2e2ec9a8593655ae0bfeb6b82f9a0f7ce2bade226dbb95b3b56ce52e" }, "downloads": -1, "filename": "tsaotun-0.9.4.tar.gz", "has_sig": false, "md5_digest": "5c128d391e906349501e3573b2985900", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54216, "upload_time": "2017-12-10T05:22:31", "url": "https://files.pythonhosted.org/packages/30/a2/5f85137c990c875103da223418c1e23de35fd211f1bf080079e0bc4d8480/tsaotun-0.9.4.tar.gz" } ] }