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.48.0.tar.gz (935.3 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: openstacksdk-0.48.0.tar.gz
  • Upload date:
  • Size: 935.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.5.2

File hashes

Hashes for openstacksdk-0.48.0.tar.gz
Algorithm Hash digest
SHA256 8652664a30041325a980d03a37c92ca546ed923d26c246a2bb3c92fc5f24243c
MD5 6049b73b2cd51864c6bf7d1b3548b536
BLAKE2b-256 663ef108d20a306763a4826630f0b79c1037b8c46a65eb5b789f9220dea1b1be

See more details on using hashes here.

File details

Details for the file openstacksdk-0.48.0-py3-none-any.whl.

File metadata

  • Download URL: openstacksdk-0.48.0-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.5.2

File hashes

Hashes for openstacksdk-0.48.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd785455633a3e054fcd30886ca44da6047792833e4624a449b5f94c61ede189
MD5 814fc926aa572a0469f51e0c9c32c108
BLAKE2b-256 786bc6a9548cf0bc31cc5189ca1f354b788e197bd23e38c6deeab07065cf0953

See more details on using hashes here.

Supported by

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