{ "info": { "author": "Dreamlab - PaaS KRK", "author_email": "paas-support@dreamlab.pl", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Operating System :: POSIX", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "AsyncOpenStackClient\n====================\n\n|image0|_ |image1|_\n\n.. |image0| image:: https://api.travis-ci.org/DreamLab/AsyncOpenStackClient.png?branch=master\n.. _image0: https://travis-ci.org/DreamLab/AsyncOpenStackClient\n\n.. |image1| image:: https://badge.fury.io/py/AsyncOpenStackClient.svg\n.. _image1: https://badge.fury.io/py/AsyncOpenStackClient\n\n\n\nIntroduction\n============\n\nThe `AsyncOpenStackClient` is a asynchronous rest wrapper for the OpenStack API. It provides a nice abstraction for authentication. For method specification, see the official OpenStack documentation: https://docs.openstack.org/queens/api/.\n\n\nInstallation\n============\n\nUse pip:\n\n::\n\n pip install AsyncOpenStackClient\n\n\nUsage\n=====\n\n.. code-block:: python\n\n from asyncopenstackclient import NovaClient, GlanceClient, CinderClient, AuthPassword\n\n # you can either pass credentials explicitly (as shown below)\n # or use enviormental variables from OpenStack RC file\n # https://docs.openstack.org/mitaka/cli-reference/common/cli_set_environment_variables_using_openstack_rc.html\n auth = AuthPassword(\n auth_url='https://keystone:5999/v3'\n username='USER', password='PASS',\n project_name='my-project',\n user_domain_name='default',\n project_domain_name='foo.bar'\n )\n nova = NovaClient(session=auth)\n glance = GlanceClient(session=auth)\n cinder = CinderClient(session=auth)\n\n # api url for each service will be taken from catalog,\n # but you may pass `api_url` param to force custom url eg.\n # nova = NovaClient(session=auth, api_url='http://my-local-nova:9876/v2/')\n\n await nova.init_api()\n await glance.init_api()\n await cinder.init_api()\n\n\n servers = await nova.servers.list(name='testvm')\n vm = await nova.servers.get(server_id)\n\n action_spec = {'os-stop': None}\n await nova.servers.run_action(server_id, **action_spec)\n\n\n specs = {\n \"name\": 'some_name',\n \"flavorRef\": 'flavor_id',\n \"imageRef\": 'image_id',\n \"security_groups\": [{'name': 'group1'}, {'name': 'group2'}]\n \"user_data\": base64.b64encode(userdata).decode('utf-8')\n }\n response = await nova.servers.create(server=specs)\n print(response)\n\n volume = {\"size\": 200,\n \"imageRef\": \"image_id\",\n \"name\": \"some_name\"}\n\n response = await cinder.volumes.create(volume=volume)\n print(response)\n\nAvailable functions\n-------------------\n\n- Nova (https://developer.openstack.org/api-ref/compute)\n\n - servers.list(optional=filter) # params optional\n - servers.get(id)\n - servers.create(server=server_spec)\n - servers.force_delete(id)\n - servers.run_action(id, action=action_spec)\n - flavors.list()\n - metadata.get(server_id)\n - metadata.set(server_id, meta=meta_spec)\n - metadata.get_item(server_id, item_name)\n - metadata.set_item(server_id, item_name, meta=meta_spec)\n\n- Glance (https://developer.openstack.org/api-ref/image/v2/index.html)\n\n - images.list()\n\n- Cinder (https://developer.openstack.org/api-ref/block-storage/v3/index.html)\n\n - volumes.list(optional=filter) # params optional\n - volumes.get(id)\n - volumes.create(volume=volume_spec)\n - volumes.force_delete(id)\n\n\nLicense\n=======\n\n`Apache License 2.0 `_\n\nChangelog\n=========\n\n\n0.8.1 (2019-04-03)\n------------------\n\n* Fixed: upgrade dependencies (urllib3: CVE-2018-20060)\n\n0.8.0 (2018-08-19)\n------------------\n\n* Feature: another part of compute API - run an action on server\n* Feature: CD configuration\n\n0.7.0 (2018-06-15)\n------------------\n\n* Feature: Cinder implementation\n* Bugfix: typo fixes\n\n0.6.3 (2018-06-13)\n------------------\n\n* Feature: adjustable request timeout, default is 60s now\n\n\n0.6.2 (2018-05-18)\n------------------\n\n* Bugfix: initialize property (api) in Client to get some meaningful error instead of \"recursion limit reached\".\n\n\n0.6.0 (2018-05-12)\n------------------\n\n* Feature: wrap requests with Resource/Method proxy\n\n\n0.5.2 (2018-05-10)\n------------------\n\n* Bugfix: adding slash at the end of api_root_url\n\n\n0.5.1 (2018-04-29)\n------------------\n\n* Bugfix: update README with metadata entry and envs notice\n\n\n0.5.0 (2018-04-25)\n------------------\n\n* Feature: partial support for server metadata usage\n\n\n0.4.1 (2018-04-25)\n------------------\n\n* Bugifx: invalid concat auth_url with urljoin\n\n\n0.4.0 (2018-04-16)\n------------------\n\n* Feature: use `OS_` variables if present\n\n\n0.3.0 (2018-04-13)\n------------------\n\n* Feature: accept to pass api_url\n* Feature: determine api url if catalog provide incomplete one (eg. without version)\n\n\n0.2.3 (2018-04-05)\n------------------\n\n* Bugfix: do_not_await_sync_method\n\n\n0.2.2 (2018-04-02)\n------------------\n\n* Update simple-rest-client (fixed logging)\n\n\n0.2.1 (2018-03-28)\n------------------\n\n* fix tests, cov report, MANIFEST.in\n\n\n0.1.1 (2018-03-02)\n------------------\n\n* Update MANIFEST.in\n\n0.1.0 (2018-02-15)\n------------------\n\n* First approach to build async openstack client library for Python3", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/DreamLab/AsyncOpenStackClient", "keywords": "iaas,cloud,openstack,nova,glance,async", "license": "", "maintainer": "", "maintainer_email": "", "name": "AsyncOpenStackClient", "package_url": "https://pypi.org/project/AsyncOpenStackClient/", "platform": "", "project_url": "https://pypi.org/project/AsyncOpenStackClient/", "project_urls": { "Homepage": "https://github.com/DreamLab/AsyncOpenStackClient" }, "release_url": "https://pypi.org/project/AsyncOpenStackClient/0.8.1/", "requires_dist": null, "requires_python": "", "summary": "Basic OpenStack async client library using asyncio", "version": "0.8.1" }, "last_serial": 5095386, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "71a97f890f0bba4b2887d039a59bb74f", "sha256": "93af0b434a24fbcf8570758acb94b05af5ae8b308da3434a829c8cd2917f911f" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.1.0.tar.gz", "has_sig": false, "md5_digest": "71a97f890f0bba4b2887d039a59bb74f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3305, "upload_time": "2018-02-28T15:13:36", "url": "https://files.pythonhosted.org/packages/35/5e/fdf221f5195fb2aa067a1f74927bf98499870d07a8aba805f3275a305f63/AsyncOpenStackClient-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "844568646c49d35789a11d7c824d1bdf", "sha256": "9579078c81bfb32f14549b38a92e6527acb0b79fee8d61e5323c2672194f7d54" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.1.1.tar.gz", "has_sig": false, "md5_digest": "844568646c49d35789a11d7c824d1bdf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12765, "upload_time": "2018-03-02T11:20:56", "url": "https://files.pythonhosted.org/packages/60/c1/68d8a5577dd36bdd78e2fc15164bf3d40ee2ed14e1e4e9ea5300df71fba3/AsyncOpenStackClient-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "7ed24cbacd490126008dfbed844f5025", "sha256": "b847fb4a23d6f998cb3345fee395d66ac4ed68b9001e7277813f16f4ea81cc90" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.2.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "7ed24cbacd490126008dfbed844f5025", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6247, "upload_time": "2018-03-25T17:05:51", "url": "https://files.pythonhosted.org/packages/5a/92/e5de566cae2e2338a023b9be2bbf63589d656e5eb16f7f12d78e7f3a4ae7/AsyncOpenStackClient-0.2.0.linux-x86_64.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "6766cdfe8e817c1d9d2f9478e7d716d5", "sha256": "22ef37d69610d9d5410170a09b37199eb6bbcf42c8777f93b61c52a4a63a3dd9" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.2.1.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "6766cdfe8e817c1d9d2f9478e7d716d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6666, "upload_time": "2018-03-28T08:54:49", "url": "https://files.pythonhosted.org/packages/85/68/b7e66fec69507aa030801557a5fdd433d05723d7eb3358b560ffefe098f0/AsyncOpenStackClient-0.2.1.linux-x86_64.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "e244fa09572cb72c56ca955bde85165f", "sha256": "4864a3734990fb9be559c5f16229dede45a2ed1d679d977bfd1f175e28a6d9e7" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.2.2.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "e244fa09572cb72c56ca955bde85165f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6346, "upload_time": "2018-04-04T06:28:41", "url": "https://files.pythonhosted.org/packages/42/4d/d64bb7090ffa939b86c5358d5ede810d2a999ba896e909e42826bf9f8262/AsyncOpenStackClient-0.2.2.linux-x86_64.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "724b423e719ee3c3929f25ea623ec3c0", "sha256": "46b6db313a249f35e89387339caab1e643df4200572becf3957d9e343c291558" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.2.3.tar.gz", "has_sig": false, "md5_digest": "724b423e719ee3c3929f25ea623ec3c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16869, "upload_time": "2018-04-04T12:47:58", "url": "https://files.pythonhosted.org/packages/11/b0/a082e3b6f6f320a9033ce2d764768b11ebfdc1fcd9aa6b682da48106558e/AsyncOpenStackClient-0.2.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "5ed34081a0f8103e7a91118a7d808be5", "sha256": "70e0dbf17f763eb8b1695f2edfec88980e6b50b8d09c062388fda6a3a108d885" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.3.0.tar.gz", "has_sig": false, "md5_digest": "5ed34081a0f8103e7a91118a7d808be5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16323, "upload_time": "2018-04-13T21:13:38", "url": "https://files.pythonhosted.org/packages/f0/db/db3a7c8adb4c000cbc7cd7b4cc18a824a4535aad0e3f39de46196e62cc0a/AsyncOpenStackClient-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "1fba52e923af16c1e8ba3f7a071cff18", "sha256": "1427db12f679f153ce4e7bc9d0eb366f3d1acf2048167981a8bd258493b14924" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.4.0.tar.gz", "has_sig": false, "md5_digest": "1fba52e923af16c1e8ba3f7a071cff18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18222, "upload_time": "2018-04-23T11:41:59", "url": "https://files.pythonhosted.org/packages/04/11/4854a6b809659f6e8802a2cde079260247bb3a502ac92a90f7aef395687f/AsyncOpenStackClient-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "92f1d0d0dbf9ad9cd5f3f1547578ec31", "sha256": "9cca0009cba67c4f6c9e7997bfc87c1e06f95ad04999ecd26692c8ef14005759" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.4.1.tar.gz", "has_sig": false, "md5_digest": "92f1d0d0dbf9ad9cd5f3f1547578ec31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18329, "upload_time": "2018-04-25T10:27:19", "url": "https://files.pythonhosted.org/packages/01/3e/586322f46f3fa6c77765f0c8e9272df4bb1392e12cdb231ecc9ceefc977a/AsyncOpenStackClient-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "af14f26da5230c1a286deb7665a74005", "sha256": "7d1fe5520b712402c7df2a149cebe5c6dda278a8a3fa6c9c120440b784b06ff5" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.5.0.tar.gz", "has_sig": false, "md5_digest": "af14f26da5230c1a286deb7665a74005", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18538, "upload_time": "2018-04-26T09:22:44", "url": "https://files.pythonhosted.org/packages/0c/58/cd907e89c8e498dab59c9a8e7f9e2c798f9995ddd701b53f59a3a0ca7e9a/AsyncOpenStackClient-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "5a25e33425c078d7892d78646aca891d", "sha256": "d63f84beffa66a6536910b6b718b1018f1877e18f3e1dae12628d3482ff51248" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.5.1.tar.gz", "has_sig": false, "md5_digest": "5a25e33425c078d7892d78646aca891d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18954, "upload_time": "2018-04-30T12:35:40", "url": "https://files.pythonhosted.org/packages/ef/0c/27019e788c5f131d742d05082d6864111080140c534ea79d88c4bfcdd959/AsyncOpenStackClient-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "02e987683e6c2b21c656056071b64fd4", "sha256": "0bf93b02381b34f355e8f98b884d26570070706a285dfdb8ab5cfef301332f2d" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.5.2.tar.gz", "has_sig": false, "md5_digest": "02e987683e6c2b21c656056071b64fd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18691, "upload_time": "2018-05-10T13:55:52", "url": "https://files.pythonhosted.org/packages/f6/0e/c0315e80a65692378208a405d9b099617cd69ce3684cec65b192fa9db282/AsyncOpenStackClient-0.5.2.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "386beb6646e78c62fb81740f71c47321", "sha256": "47e68457d39d8577ae54dbb127e69fcd5e2d395b9cdf3820e9d77f35687ff671" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.6.0.tar.gz", "has_sig": false, "md5_digest": "386beb6646e78c62fb81740f71c47321", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19452, "upload_time": "2018-05-14T20:04:07", "url": "https://files.pythonhosted.org/packages/11/35/25c8dcdab24aa3e9de12c423ae495eb637a17ca336054ca0a161af541839/AsyncOpenStackClient-0.6.0.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "b4ddc0b2c96c840c0e533430e59ead1f", "sha256": "df6f8266e11ee11047c43727c36994502041e6d206dc84eb69144777b49e54fe" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.6.2.tar.gz", "has_sig": false, "md5_digest": "b4ddc0b2c96c840c0e533430e59ead1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19955, "upload_time": "2018-05-18T08:24:44", "url": "https://files.pythonhosted.org/packages/ac/3e/ad69f039f2f63350dc4319163a53f34d41fdb72d8989f8c23ff6dfcbadcb/AsyncOpenStackClient-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "0fa04b6a0ece3e220b2fbe5fd0b894ee", "sha256": "639ffbcca8f3cd8d3bd87c6596334c8664d18d9727d84e0c2b94edc834afb778" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.6.3.tar.gz", "has_sig": false, "md5_digest": "0fa04b6a0ece3e220b2fbe5fd0b894ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19642, "upload_time": "2018-06-13T08:55:26", "url": "https://files.pythonhosted.org/packages/bb/0d/4bf8e2af405b5652fb40bf7bfff46de13d26c7f551eae33bd8de1e37c4e1/AsyncOpenStackClient-0.6.3.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "0f47d542b5f174ddacab78aaa3df35ac", "sha256": "7726cff0148dee559676a68ee27179e4df300c7bb03f8d554fd66dfcc65042ec" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.7.0.tar.gz", "has_sig": false, "md5_digest": "0f47d542b5f174ddacab78aaa3df35ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20136, "upload_time": "2018-06-15T11:01:35", "url": "https://files.pythonhosted.org/packages/ab/1b/683b9a50c95b439537eb7d8fc4030256ff23f0a090c8e8c2730630cb626e/AsyncOpenStackClient-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "b6ec10237a298e942dde84976be951b2", "sha256": "eedcd0dbecc2bc9ea150808726ca9167498886388a0e4c6fd7337ee8f6c618f3" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.8.0.tar.gz", "has_sig": false, "md5_digest": "b6ec10237a298e942dde84976be951b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21737, "upload_time": "2018-08-20T12:06:35", "url": "https://files.pythonhosted.org/packages/e2/80/e9432aa0be9d2226dc0db43412072be489ad38a5003315552edfd5363a66/AsyncOpenStackClient-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "57319485664d613333e921a3866683e4", "sha256": "64a1c5a15063220c7f4ff0435cf2731d655698ad895712687f1781751d786fe3" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.8.1.tar.gz", "has_sig": false, "md5_digest": "57319485664d613333e921a3866683e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23050, "upload_time": "2019-04-04T08:13:25", "url": "https://files.pythonhosted.org/packages/b0/fe/93ddfc4cafc6d5ea720c7965bb849547223c8cbf545f8e5d497076676cfe/AsyncOpenStackClient-0.8.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "57319485664d613333e921a3866683e4", "sha256": "64a1c5a15063220c7f4ff0435cf2731d655698ad895712687f1781751d786fe3" }, "downloads": -1, "filename": "AsyncOpenStackClient-0.8.1.tar.gz", "has_sig": false, "md5_digest": "57319485664d613333e921a3866683e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23050, "upload_time": "2019-04-04T08:13:25", "url": "https://files.pythonhosted.org/packages/b0/fe/93ddfc4cafc6d5ea720c7965bb849547223c8cbf545f8e5d497076676cfe/AsyncOpenStackClient-0.8.1.tar.gz" } ] }