Skip to main content

Simple client library for interacting with OpenStack clouds

Project description

Introduction

shade is a simple client library for interacting with OpenStack clouds. The key word here is simple. Clouds can do many many 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, you should probably use the lower level client libraries - or even the REST API directly. 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 shade is for you.

shade started its life as some code inside of ansible. ansible has a bunch of different OpenStack related modules, and there was a ton of duplicated code. Eventually, between refactoring that duplication into an internal library, and adding logic and features that the OpenStack Infra team had developed to run client applications at scale, it turned out that we’d written nine-tenths of what we’d need to have a standalone library.

Example

Sometimes an example is nice.

  1. Create a clouds.yml file:

    clouds:
     mordred:
       region_name: RegionOne
       auth:
         username: 'mordred'
         password: XXXXXXX
         project_name: 'shade'
         auth_url: 'https://montytaylor-sjc.openstack.blueboxgrid.com:5001/v2.0'

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

    • Current Directory

    • ~/.config/openstack

    • /etc/openstack

    More information at https://pypi.org/project/os-client-config

  2. Create a server with shade, configured with the clouds.yml file:

    import shade
    
    # Initialize and turn on debug logging
    shade.simple_logging(debug=True)
    
    # Initialize cloud
    # Cloud configs are read with os-client-config
    cloud = shade.openstack_cloud(cloud='mordred')
    
    # Upload an image to the cloud
    image = cloud.create_image(
        'ubuntu-trusty', filename='ubuntu-trusty.qcow2', wait=True)
    
    # Find a flavor with at least 512M of RAM
    flavor = cloud.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.
    cloud.create_server(
        'my-server', image=image, flavor=flavor, wait=True, auto_ip=True)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shade-1.30.0.tar.gz (332.1 kB view details)

Uploaded Source

Built Distribution

shade-1.30.0-py2.py3-none-any.whl (372.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file shade-1.30.0.tar.gz.

File metadata

  • Download URL: shade-1.30.0.tar.gz
  • Upload date:
  • Size: 332.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.27.0 CPython/2.7.12

File hashes

Hashes for shade-1.30.0.tar.gz
Algorithm Hash digest
SHA256 f774ddd3190d6e3a97aa55617d0b10d578e7c8b141104331e2de7f388aeca405
MD5 1b7f1d9b348d6a977a1d7c05606c9fdc
BLAKE2b-256 712521c9a9765dd1321282693ce03bdab751a86b5ff04c7a9347a8671fecee72

See more details on using hashes here.

File details

Details for the file shade-1.30.0-py2.py3-none-any.whl.

File metadata

  • Download URL: shade-1.30.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 372.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.27.0 CPython/2.7.12

File hashes

Hashes for shade-1.30.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3f548b4367acde9658c7044c5a9585091b2e83ac92c602ab09041e928c933d00
MD5 cb1cacbba896e17f71fb222eecffae55
BLAKE2b-256 c87c269c33a0c0846331eb310a3f81ac542da3a0b5a026c9ac9374d46feba3dd

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