Basic OpenStack client library using asyncio
Project description
AsyncOpenStackClient
Introduction
The 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/.
Installation
Use pip:
pip install AsyncOpenStackClient
Usage
from asyncopenstackclient import NovaClient, GlanceClient, AuthPassword
# you can either pass credentials explicitly (as shown below)
# or use enviormental variables from OpenStack RC file
# https://docs.openstack.org/mitaka/cli-reference/common/cli_set_environment_variables_using_openstack_rc.html
auth = AuthPassword(
auth_url='https://keystone:5999/v3'
username='USER', password='PASS',
project_name='my-project',
user_domain_name='default',
project_domain_name='foo.bar'
)
nova = NovaClient(session=auth)
glance = GlanceClient(session=auth)
# api url for each service will be taken from catalog,
# but you may pass `api_url` param to force custom url eg.
# nova = NovaClient(session=auth, api_url='http://my-local-nova:9876/v2/')
await nova.init_api()
await glance.init_api()
servers = await nova.servers.list(name='testvm')
vm = await nova.servers.get(server_id)
specs = {
"name": 'some_name',
"flavorRef": 'flavor_id',
"imageRef": 'image_id',
"security_groups": [{'name': 'group1'}, {'name': 'group2'}]
"user_data": base64.b64encode(userdata).decode('utf-8')
}
response = await nova.servers.create(server=specs)
print(response)
Available functions
Nova (https://developer.openstack.org/api-ref/compute)
servers.list(optional=filter) # params optional
servers.get(id)
servers.create(server=server_spec)
servers.force_delete(id)
flavors.list()
metadata.get(server_id)
metadata.set(server_id, meta=meta_spec)
metadata.get_item(server_id, item_name)
metadata.set_item(server_id, item_name, meta=meta_spec)
Glance (https://developer.openstack.org/api-ref/image/v2/index.html)
images.list()
License
Changelog
0.6.2 (2018-05-18)
Bugfix: initialize property (api) in Client to get some meaningful error instead of “recursion limit reached”.
0.6.0 (2018-05-12)
Feature: wrap requests with Resource/Method proxy
0.5.2 (2018-05-10)
Bugfix: adding slash at the end of api_root_url
0.5.1 (2018-04-29)
Bugfix: update README with metadata entry and envs notice
0.5.0 (2018-04-25)
Feature: partial support for server metadata usage
0.4.1 (2018-04-25)
Bugifx: invalid concat auth_url with urljoin
0.4.0 (2018-04-16)
Feature: use OS_ variables if present
0.3.0 (2018-04-13)
Feature: accept to pass api_url
Feature: determine api url if catalog provide incomplete one (eg. without version)
0.2.3 (2018-04-05)
Bugfix: do_not_await_sync_method
0.2.2 (2018-04-02)
Update simple-rest-client (fixed logging)
0.2.1 (2018-03-28)
fix tests, cov report, MANIFEST.in
0.1.1 (2018-03-02)
Update MANIFEST.in
0.1.0 (2018-02-15)
First approach to build async openstack client library for Python3
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for AsyncOpenStackClient-0.6.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | df6f8266e11ee11047c43727c36994502041e6d206dc84eb69144777b49e54fe |
|
MD5 | b4ddc0b2c96c840c0e533430e59ead1f |
|
BLAKE2b-256 | ac3ead69f039f2f63350dc4319163a53f34d41fdb72d8989f8c23ff6dfcbadcb |