Skip to main content

An SDK for building applications to work with OpenStack

Project description

openstacksdk

openstacksdk is a client library for building applications to work with OpenStack clouds. The project aims to provide a consistent and complete set of interactions with OpenStack’s many services, along with complete documentation, examples, and tools.

It also contains an abstraction interface layer. Clouds can do many things, but there are probably only about 10 of them that most people care about with any regularity. If you want to do complicated things, the per-service oriented portions of the SDK are for you. However, if what you want is to be able to write an application that talks to clouds no matter what crazy choices the deployer has made in an attempt to be more hipster than their self-entitled narcissist peers, then the Cloud Abstraction layer is for you.

More information about its history can be found at https://docs.openstack.org/openstacksdk/latest/contributor/history.html

openstack

List servers using objects configured with the clouds.yaml file:

import openstack

# Initialize and turn on debug logging
openstack.enable_logging(debug=True)

# Initialize cloud
conn = openstack.connect(cloud='mordred')

for server in conn.compute.servers():
    print(server.to_dict())

Cloud Layer

openstacksdk contains a higher-level layer based on logical operations.

import openstack

# Initialize and turn on debug logging
openstack.enable_logging(debug=True)

for server in conn.list_servers():
    print(server.to_dict())

The benefit is mostly seen in more complicated operations that take multiple steps and where the steps vary across providers:

import openstack

# Initialize and turn on debug logging
openstack.enable_logging(debug=True)

# Initialize connection
# Cloud configs are read with openstack.config
conn = openstack.connect(cloud='mordred')

# Upload an image to the cloud
image = conn.create_image(
    'ubuntu-trusty', filename='ubuntu-trusty.qcow2', wait=True)

# Find a flavor with at least 512M of RAM
flavor = conn.get_flavor_by_ram(512)

# Boot a server, wait for it to boot, and then do whatever is needed
# to get a public ip for it.
conn.create_server(
    'my-server', image=image, flavor=flavor, wait=True, auto_ip=True)

openstack.config

openstack.config will find cloud configuration for as few as 1 clouds and as many as you want to put in a config file. It will read environment variables and config files, and it also contains some vendor specific default values so that you don’t have to know extra info to use OpenStack

  • If you have a config file, you will get the clouds listed in it

  • If you have environment variables, you will get a cloud named envvars

  • If you have neither, you will get a cloud named defaults with base defaults

Sometimes an example is nice.

Create a clouds.yaml file:

clouds:
 mordred:
   region_name: Dallas
   auth:
     username: 'mordred'
     password: XXXXXXX
     project_name: 'shade'
     auth_url: 'https://identity.example.com'

Please note: openstack.config will look for a file called clouds.yaml in the following locations:

  • Current Directory

  • ~/.config/openstack

  • /etc/openstack

More information at https://docs.openstack.org/openstacksdk/latest/user/config/configuration.html

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

openstacksdk-0.36.5.tar.gz (917.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openstacksdk-0.36.5-py2.py3-none-any.whl (1.3 MB view details)

Uploaded Python 2Python 3

File details

Details for the file openstacksdk-0.36.5.tar.gz.

File metadata

  • Download URL: openstacksdk-0.36.5.tar.gz
  • Upload date:
  • Size: 917.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6

File hashes

Hashes for openstacksdk-0.36.5.tar.gz
Algorithm Hash digest
SHA256 9c2c35552c33d205191ed244cc1e5edf633396aa16cde6ced65654ff065ed167
MD5 d1b5984ae6dbe88674b46889d7de5840
BLAKE2b-256 f39d82e377c5fed02d6feaf110f8679839f56b4395380400c0e366a9e30918b8

See more details on using hashes here.

File details

Details for the file openstacksdk-0.36.5-py2.py3-none-any.whl.

File metadata

  • Download URL: openstacksdk-0.36.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6

File hashes

Hashes for openstacksdk-0.36.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3e06b6b2e07e195e5b9a905a9c3c0b067e361340f0b225c96d019117a5598622
MD5 03e07d979d8ec1d0f0f381ad43713133
BLAKE2b-256 5b6ce29e753b178f884737c95c259e1128957db49b295881b597ab796cb48707

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page