Files
deb-python-openstacksdk/doc/source/users/guides/connect_from_config.rst
Brian Curtin effb2a7d65 Refactor os-client-config usage in from_config
This change allows the from_config factory function to better support
two angles from which it will most commonly be used.

1. When SDK is being used from within OSC, OSC will have obtained
configuration data from OCC and is better served by passing it directly
into SDK rather than SDK additionally accessing that data.

2. Direct users of the SDK, such as customer applications, are less
likely to have dealt directly with OCC and are better served by just
passing in the name of the configuration they want to run with.

Closes-Bug:1513920

Change-Id: I06f871b822e4b8b0cc8cc8db9e7ccff91f918e5a
2015-11-19 10:25:52 -06:00

72 lines
2.3 KiB
ReStructuredText

Connect From Config
===================
In order to work with an OpenStack cloud you first need to create a
:class:`~openstack.connection.Connection` to it using your credentials. A
:class:`~openstack.connection.Connection` can be
created in 3 ways, using the class itself (see :doc:`connect`), a file, or
environment variables as illustrated below. The SDK uses
`os-client-config <http://git.openstack.org/cgit/openstack/os-client-config/tree/README.rst>`_
to handle the configuration.
.. note:: To get your credentials
`Download the OpenStack RC file <http://docs.openstack.org/cli-reference/content/cli_openrc.html#openrc-dashboard>`_.
Create Connection From A File
-----------------------------
Default Location
****************
To create a connection from a file you need a YAML file to contain the
configuration.
.. literalinclude:: ../../contributors/clouds.yaml
:language: yaml
To use a configuration file called ``clouds.yaml`` in one of the default
locations:
* Current Directory
* ~/.config/openstack
* /etc/openstack
call :py:func:`~openstack.connection.from_config`. The ``from_config``
function takes three optional arguments, such as **cloud_name**,
which allows you to specify one set of cloud credentials in your
``clouds.yaml`` file. Additionally, **cloud_config** and **options**
allow you to pass in configiration data you may have already received
from ``os-client-config``, as well as additional options that the
``os-client-config`` library may need.
.. literalinclude:: ../examples/connect.py
:pyobject: Opts
.. literalinclude:: ../examples/connect.py
:pyobject: create_connection_from_config
.. note:: To enable logging, set ``debug=True`` in the ``Opts`` object.
User Defined Location
*********************
To use a configuration file in a user defined location set the
environment variable ``OS_CLIENT_CONFIG_FILE`` to the
absolute path of a file.::
export OS_CLIENT_CONFIG_FILE=/path/to/my/config/my-clouds.yaml
and call :py:func:`~openstack.connection.from_config` with the **cloud_name**
of the cloud configuration to use, .
.. Create Connection From Environment Variables
--------------------------------------------
TODO(etoews): Document when https://bugs.launchpad.net/os-client-config/+bug/1489617
is fixed.
Next
----
Now that you can create a connection, continue with the :ref:`user_guides`
for an OpenStack service.