Software Development Kits
=========================
The are several Software Development Kits (SDKs) with support for OpenStack.
Below are specifics for using some SDKs with the OSDC.
Libcloud
------------------------
`Apache Libcloud `_ is a Python library that provides support for multiple cloud providers.
The OpenStack examples on the Libcloud site need to be slightly modified to work on the OSDC.
See the example below.
.. code-block:: python
import os
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
OpenStack = get_driver(Provider.OPENSTACK)
driver = OpenStack(os.environ['OS_USERNAME'], os.environ['OS_PASSWORD'],
ex_force_auth_url=os.environ['OS_AUTH_URL'] + 'tokens',
ex_force_auth_version='2.0_password',
ex_force_service_name='Compute Service',
ex_force_service_type='compute',
ex_tenant_name=os.environ['OS_TENANT_NAME'])
print driver.list_nodes()
.. _libcloud-example:
pyrax
------------------------
`Pyrax `_ is a Python SDK for OpenStack/Rackspace APIs.
Pyrax requires a pyrax_creds file.
This file needs an OpenStack tenant_id which you can obtain with `keystone token-get`.
An example pyrax_creds file would look like::
#pyrax_creds:
[keystone]
identity_type = keystone
tenant_id = b61bf0683335448e8f3f778dec2949be
username = demo
password = *****************
auth_endpoint = https://api.opensciencedatacloud.org:5000/sullivan/v2.0/
Then reference that file from your Python script:
.. code-block:: python
import os
import pyrax
pyrax.set_setting("identity_type", "keystone")
pyrax.set_setting("auth_endpoint", os.environ['OS_AUTH_URL'])
pyrax.set_credential_file("pyrax_creds")