Files
openstacksdk/doc/source/users/guides/connect_from_config.rst
Monty Taylor 535f2f48ff Merge shade and os-client-config into the tree
This sucks in the git history for both projects, then moves their files
in place. It should not introduce any behavior changes to any of the
existing openstacksdk code, nor to openstack.config and openstack.cloud
- other than the name change.

TODO(shade) comments have been left indicating places where further
integration work should be done.

It should not be assumed that these are the final places for either to
live. This is just about getting them in-tree so we can work with them.

The enforcer code for reasons surpassing understanding does not work
with python setup.py build_sphinx but it does work with sphinx-build
(what?) For now turn it off. We can turn it back on once the build
sphinx job is migrated to the new PTI.

Change-Id: I9523e4e281285360c61e9e0456a8e07b7ac1243c
2017-11-15 09:03:23 -06:00

73 lines
2.2 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.
Create Connection From A File
-----------------------------
Default Location
****************
To create a connection from a file you need a YAML file to contain the
configuration.
.. literalinclude:: ../../contributor/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:
* **cloud_name** allows you to specify a cloud from your ``clouds.yaml`` file.
* **cloud_config** allows you to pass in an existing
``openstack.config.loader.OpenStackConfig``` object.
* **options** allows you to specify a namespace object with options to be
added to the cloud config.
.. literalinclude:: ../examples/connect.py
:pyobject: Opts
.. literalinclude:: ../examples/connect.py
:pyobject: create_connection_from_config
.. literalinclude:: ../examples/connect.py
:pyobject: create_connection_from_args
.. note:: To enable logging, set ``debug=True`` in the ``options`` 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.