
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
73 lines
2.2 KiB
ReStructuredText
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.
|