{ "info": { "author": "Enrique Garcia Pablos", "author_email": "engapa@gmail.com", "bugtrack_url": null, "classifiers": [ "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "Docker image builder for Openstack clients (aka OSCs docker builder)\n====================================================================\n\n|Latest Version| |Downloads| |Code Issues| |codecov| |CircleCI|\n\nA lot of people need install/update/upgrade/downgrade any Openstack\npython client in any time. Thanks to Docker containers it is easy to get\nan isolated environment with all Openstack clients of specific upstream\nversions that you wish.\n\nPre-requisites\n==============\n\nList of prerequisites :\n\n- docker image: Ensure that there is an official python docker image\n for the provided python version parameter.\n- tox : All clients are using tox, and python version parameter will be\n matched in env list.\n- common release: All clients have to have the same release, in other\n cases you must specify a different release (by property 'release' in\n the osc.yml file) to override global release parameter. For example,\n in the osc.yml you may see that gnocchi client has 'master' release\n instead of 'stable/newton'.\n\nBuild a docker image with OSCs\n==============================\n\nThis module can be installed by pip:\n\n::\n\n $ pip install osc-docker-builder\n\nBest way to get help about the command is :\n\n::\n\n osc-builder --help\n usage: ocs [-h] [-bp BUILD_PATH] [-f CONFIG_FILE] [-pv PYTHON_VERSION]\n [-r RELEASE] [-c CLIENTS] [-sf] [-v]\n\n Build a docker image with all Openstack clients that you want for a specific\n upstream branch and python version\n\n optional arguments:\n -h, --help show this help message and exit\n -bp BUILD_PATH, --build-path BUILD_PATH\n The build path where files are written.\n -f CONFIG_FILE, --config-file CONFIG_FILE\n A YAML config file.\n -pv PYTHON_VERSION, --python-version PYTHON_VERSION\n Python version for docker image\n base(https://hub.docker.com/_/python/).For example :\n 2.7, 3.5.2\n -r RELEASE, --release RELEASE\n Upstream release.\n -c CLIENTS, --clients CLIENTS\n Provide all openstack python clients that you want.By\n defaults only python-openstackclient will be\n installed.\n -sf, --skip-fails Skip failures and create the image.\n -v, --verbose Show details.\n\nReady for action ?, suppose that you want to create a docker image for\nthese python version and Openstack clients:\n\n::\n\n osc-builder --python-version 3.4 --clients openstack --clients heat --release stable/newton --build-path /tmp/osc-docker-builder\n\nI recommend using a config file (which could be controlled by a version\ncontrol system):\n\n::\n\n osc-builder -f osc.yml\n\nThis command can be launched form the source code. The main function\nwill be found in osc\\_docker\\_builder package :\n\n::\n\n $ osc.py -f osc.yml -bp /tmp/osc-builder\n\nAs command execution output we have a docker image ready to be used.\nPush your images to your private registry or use my images at \"engapa\"\naccount in dockerhub.com\n\nRunning and using docker container\n==================================\n\nFor example, run a container based on latest image for python client 2.7\nand release stable/newton :\n\n::\n\n $ docker run -it -d --name osc engapa/osc:2.7-stable_newton-latest\n 1f395d7273b99b734725fcbab4ebd05082f21978e0c4e3104cc8332c7430920d\n $ docker ps\n CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\n 1f395d7273b9 engapa/osc:2.7-stable_newton-latest \"/bin/bash\" 2 seconds ago Up 3 seconds osc\n\nFor example let's view the version of the Heat client installed in this\ncontainer:\n\n::\n\n $ docker exec -it 1f395d7273b9 /bin/bash -c \"heat --version\"\n 1.5.0\n\nIf you prefer operate within the container :\n\n::\n\n $ docker attach 1f395d7273b9\n root@1f395d7273b9:# pip list --format columns | grep -i \"^python-.*client\"\n python-openstackclient 3.2.1.dev10 /src/python-openstackclient\n python-saharaclient 0.18.1.dev1 /src/python-saharaclient\n python-searchlightclient 1.0.1.dev1 /src/python-searchlightclient\n python-senlinclient 1.0.1.dev14 /src/python-senlinclient\n python-solumclient 2.1.2.dev2 /src/python-solumclient\n python-swiftclient 3.1.1.dev1 /src/python-swiftclient\n ...\n root@1f395d7273b9:/#\n\nIf you want to update all python client versions (if provided release\nwas a branch , e.g. : master) just execute this command within the\ncontainer:\n\n::\n\n $ docker attach 1f395d7273b9\n root@1f395d7273b9:/root# pip install -U -r requirements.txt\n\nAn interesting module of openstack is 'os-client-config', it aims you to\nuse a cloud configuration file shared by volume mount point (at \"/root\",\n\"/root/.config/openstack\" or \"/etc/openstack\" directory):\n\n::\n\n $ cat << EOF > cloud.yml\n > clouds:\n > spaincloud:\n > auth:\n > username: engapa\n > password: XXXXXXXXX\n > project_name: OSOOS\n > auth_url: 'https://spaincloud.com:5001/v2.0'\n > region_name: SpainSalamanca\n > dns_api_version: 1\n > EOF\n $ docker run -it --name osc -v $(pwd)/clouds.yml:/root/.config/openstack/clouds.yml engapa/osc:2.7-stable_newton-latest\n root@1536ac361c6c:~# openstack --os-cloud spaincloud server list\n ...\n\nDeveloper mode\n==============\n\nMain tasks with code are managed by\n`tox `__\n\nTo launch tests just type:\n\n::\n\n $ tox -r\n ...\n\n Name Stmts Miss Cover\n -----------------------------------------------\n osc_docker_builder.py 0 0 100%\n osc_docker_builder/osc.py 129 102 70%\n -----------------------------------------------\n TOTAL 129 102 70%\n ----------------------------------------------------------------------\n Ran 5 tests in 0.097s\n\n OK\n ___________________________________________________________________________ summary ____________________________________________________________________________\n pep8: commands succeeded\n py27: commands succeeded\n py35: commands succeeded\n congratulations :)\n\nLoad the virtualenv and build a docker image :\n\n::\n\n $ source .tox/py27/bin/activate\n $(py27) osc-builder -f osc.yml\n\nAuthor\n======\n\nEnrique Garcia Pablos engapa@gmail.com\n\n.. |Latest Version| image:: https://img.shields.io/pypi/v/osc-docker-builder.svg\n :target: https://pypi.python.org/pypi/osc-docker-builder/\n.. |Downloads| image:: https://img.shields.io/pypi/dm/osc-docker-builder.svg\n :target: https://pypi.python.org/pypi/osc-docker-builder/\n.. |Code Issues| image:: https://www.quantifiedcode.com/api/v1/project/1a96eb463beb4512a203762481b0c1ab/badge.svg\n :target: https://www.quantifiedcode.com/app/project/1a96eb463beb4512a203762481b0c1ab\n.. |codecov| image:: https://codecov.io/gh/engapa/osc-docker-builder/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/engapa/osc-docker-builder\n.. |CircleCI| image:: https://circleci.com/gh/engapa/osc-docker-builder/tree/master.svg?style=svg\n :target: https://circleci.com/gh/engapa/osc-docker-builder/tree/master\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/engapa/osc-docker-builder.git", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "osc-docker-builder", "package_url": "https://pypi.org/project/osc-docker-builder/", "platform": "", "project_url": "https://pypi.org/project/osc-docker-builder/", "project_urls": { "Homepage": "http://github.com/engapa/osc-docker-builder.git" }, "release_url": "https://pypi.org/project/osc-docker-builder/2.3/", "requires_dist": null, "requires_python": "", "summary": "Docker image builder for Openstack python clients", "version": "2.3" }, "last_serial": 2640886, "releases": { "1.7": [ { "comment_text": "", "digests": { "md5": "b1a2ffe4ff3bb2bd84609104772cbc7a", "sha256": "6a05c7324f0b57cf3ad9572dff52573453b23512c3e7a5a130f82113d643a600" }, "downloads": -1, "filename": "osc_docker_builder-1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b1a2ffe4ff3bb2bd84609104772cbc7a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12405, "upload_time": "2016-12-10T19:56:57", "url": "https://files.pythonhosted.org/packages/31/12/ae9071cfb52697ddfcb8d8fe24d4e3208a1f05297b278234df235ed0b526/osc_docker_builder-1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8a6973d411a2b3c59c5b7963e8bd525", "sha256": "f552bd5dde410cce36f757201b1d084dd685819d0698c3d0623d5aeb4062078e" }, "downloads": -1, "filename": "osc-docker-builder-1.7.tar.gz", "has_sig": false, "md5_digest": "d8a6973d411a2b3c59c5b7963e8bd525", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12671, "upload_time": "2016-12-10T19:56:58", "url": "https://files.pythonhosted.org/packages/02/d9/aec0420517442d4bafeb6c7cfa0b15530906ffe9ef042e297779770e3e2b/osc-docker-builder-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "9c4199048721bc15ada4fb74ddb74d84", "sha256": "8e44540965173f751373b8834bbf2d3dd3a41d81b46c74b715b11628d18ae859" }, "downloads": -1, "filename": "osc_docker_builder-1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9c4199048721bc15ada4fb74ddb74d84", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12541, "upload_time": "2016-12-11T16:43:16", "url": "https://files.pythonhosted.org/packages/07/ca/4e7f37b1d0c5f20fb1f85a846dbef971a8deec0ee3b93c5a7fa523664ece/osc_docker_builder-1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32f28e6ce9fad32b13747a221640974b", "sha256": "ff1c156052c73f78591646d5e97357e638a7bc9b4cbf85e07902abb28d0c359d" }, "downloads": -1, "filename": "osc-docker-builder-1.8.tar.gz", "has_sig": false, "md5_digest": "32f28e6ce9fad32b13747a221640974b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12753, "upload_time": "2016-12-11T16:43:17", "url": "https://files.pythonhosted.org/packages/e7/12/518bb0af1fa489ff01a522c9a742e987afa862190fced784f31286b7fa4a/osc-docker-builder-1.8.tar.gz" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "02a8bc601a08152b30105c59f235796f", "sha256": "be658d1aeb58b3ecba9b02d8bf63eb2b149d14a60d376ff63f46bd3c82f485c8" }, "downloads": -1, "filename": "osc_docker_builder-1.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "02a8bc601a08152b30105c59f235796f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13379, "upload_time": "2016-12-11T21:23:45", "url": "https://files.pythonhosted.org/packages/ea/5e/8c99591d57a76c879055b4a633d14559643cb69baedec4439129babf3905/osc_docker_builder-1.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f866387983cf77bed59cc18255f0069", "sha256": "f26f8c1323de92e17d9363c9736569da57b8d0d670170bfcdd4b8fa1601e779c" }, "downloads": -1, "filename": "osc-docker-builder-1.9.tar.gz", "has_sig": false, "md5_digest": "0f866387983cf77bed59cc18255f0069", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13405, "upload_time": "2016-12-11T21:23:47", "url": "https://files.pythonhosted.org/packages/dc/30/b6f3ecb9e1b507edeceb81ce4aa751af58f96138b2d91768d14fcddd2006/osc-docker-builder-1.9.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "9846fd1c089c279f465cc12b69dae2ef", "sha256": "62ba0a5857e59a6e0dc497e38112749478f30275fec7f81cfcf70ace9e66bb09" }, "downloads": -1, "filename": "osc_docker_builder-2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9846fd1c089c279f465cc12b69dae2ef", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13374, "upload_time": "2016-12-12T09:19:48", "url": "https://files.pythonhosted.org/packages/41/50/c6fa7128074a71b71c690fc4aac65ee390efd6294c8cfc10621f95cb6537/osc_docker_builder-2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5df1cd0d54a0730fcd3ed90cb79c7702", "sha256": "21cfedd841c628b0db8aa7197c59c845f8908f78ec06d9f83d9eb32836c3494a" }, "downloads": -1, "filename": "osc-docker-builder-2.0.tar.gz", "has_sig": false, "md5_digest": "5df1cd0d54a0730fcd3ed90cb79c7702", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13398, "upload_time": "2016-12-12T09:19:49", "url": "https://files.pythonhosted.org/packages/80/3f/6fc43584f924d58dd884ccb0f9baa00cb0c557e2a0959c660be524d2aeaf/osc-docker-builder-2.0.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "13e1108b0773f2e378fad554ceb6ea65", "sha256": "2addb099cae02ecebcdedddef203e9ae8d5924da6b12d7b7e2c4e8c5c6cf285b" }, "downloads": -1, "filename": "osc_docker_builder-2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "13e1108b0773f2e378fad554ceb6ea65", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13404, "upload_time": "2016-12-19T09:58:19", "url": "https://files.pythonhosted.org/packages/7d/4e/6897c07e2dfa8bb9a388d5618de967f0c1596b23637a5d1d17b55bb6372d/osc_docker_builder-2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "71d8ac983c6d59c44c9bf8e1f249bb12", "sha256": "bdbd2b7ee31f88711243237a300dae874544cd0b58907a1493446cbc93b9e3ba" }, "downloads": -1, "filename": "osc-docker-builder-2.1.tar.gz", "has_sig": false, "md5_digest": "71d8ac983c6d59c44c9bf8e1f249bb12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13431, "upload_time": "2016-12-19T09:58:20", "url": "https://files.pythonhosted.org/packages/a5/2e/9a6448f1c74706e8f28185e0f7d9ab0dd03f6235ef0439bc0566d442703f/osc-docker-builder-2.1.tar.gz" } ], "2.2": [ { "comment_text": "", "digests": { "md5": "2da78973a6ebcbcc5cb63378d760bb7b", "sha256": "d2ffe9992ba28bfe74e9765e3e50d964ffa5eb60c4309f5b294d5fc169f99e28" }, "downloads": -1, "filename": "osc_docker_builder-2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2da78973a6ebcbcc5cb63378d760bb7b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11414, "upload_time": "2016-12-20T11:00:53", "url": "https://files.pythonhosted.org/packages/7e/43/85c238319ccd4852fd14ffe13fb99d24ddc9168b8fefac17934f768bd3bc/osc_docker_builder-2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dfbe556cf271c0bb1ee028a33cd56ebb", "sha256": "dba47e194263a4f6936c67810bafb62dab1ed03ac64e119bed6a3597ebb8597c" }, "downloads": -1, "filename": "osc-docker-builder-2.2.tar.gz", "has_sig": false, "md5_digest": "dfbe556cf271c0bb1ee028a33cd56ebb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11940, "upload_time": "2016-12-20T11:00:54", "url": "https://files.pythonhosted.org/packages/7c/24/863079ae40fcb6bb084822ac170b582ebfd47b3ae26eced4554feba9339b/osc-docker-builder-2.2.tar.gz" } ], "2.3": [ { "comment_text": "", "digests": { "md5": "ac9d69675f8505535851fc98b57c8485", "sha256": "d32e178220d998393ee3cea42ad19a4cab9cb254cd1fc8863448fca18e8767c8" }, "downloads": -1, "filename": "osc_docker_builder-2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ac9d69675f8505535851fc98b57c8485", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12372, "upload_time": "2017-02-14T12:31:21", "url": "https://files.pythonhosted.org/packages/62/55/14e6ecef910cdc4aad3d6218c0d86c3572c580f2def920b87ec6d98abe77/osc_docker_builder-2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b9de24e220be23d9f3c2b48553c2b6b", "sha256": "d50a33ca9c4810be59af9e9330635fd075805a7d454d371153096e4f382ca406" }, "downloads": -1, "filename": "osc-docker-builder-2.3.tar.gz", "has_sig": false, "md5_digest": "8b9de24e220be23d9f3c2b48553c2b6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12754, "upload_time": "2017-02-14T12:31:22", "url": "https://files.pythonhosted.org/packages/6f/a3/344e39391b476e8a77577db85e97c969e11fce637b4de4783c24e3df87e2/osc-docker-builder-2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ac9d69675f8505535851fc98b57c8485", "sha256": "d32e178220d998393ee3cea42ad19a4cab9cb254cd1fc8863448fca18e8767c8" }, "downloads": -1, "filename": "osc_docker_builder-2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ac9d69675f8505535851fc98b57c8485", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12372, "upload_time": "2017-02-14T12:31:21", "url": "https://files.pythonhosted.org/packages/62/55/14e6ecef910cdc4aad3d6218c0d86c3572c580f2def920b87ec6d98abe77/osc_docker_builder-2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b9de24e220be23d9f3c2b48553c2b6b", "sha256": "d50a33ca9c4810be59af9e9330635fd075805a7d454d371153096e4f382ca406" }, "downloads": -1, "filename": "osc-docker-builder-2.3.tar.gz", "has_sig": false, "md5_digest": "8b9de24e220be23d9f3c2b48553c2b6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12754, "upload_time": "2017-02-14T12:31:22", "url": "https://files.pythonhosted.org/packages/6f/a3/344e39391b476e8a77577db85e97c969e11fce637b4de4783c24e3df87e2/osc-docker-builder-2.3.tar.gz" } ] }