110 lines
3.8 KiB
ReStructuredText
110 lines
3.8 KiB
ReStructuredText
===============================
|
|
Transition from OpenStackClient
|
|
===============================
|
|
|
|
``osc-lib`` was extracted from the main OpenStackClient repo after the
|
|
OSC 2.4.0 release. During the migration all module names have changed
|
|
from ``openstackclient.*`` to ``osc_lib.*``. In addition, some re-arranging
|
|
has been done internally to better align modules.
|
|
|
|
The complete list of public module name changes:
|
|
|
|
* ``openstackclient.api.api`` -> ``osc_lib.api.api``
|
|
* ``openstackclient.api.auth`` -> ``osc_lib.api.auth``
|
|
* ``openstackclient.api.utils`` -> ``osc_lib.api.utils``
|
|
* ``openstackclient.common.command`` -> ``osc_lib.command.command``
|
|
* ``openstackclient.common.commandmanager`` -> ``osc_lib.command.commandmanager``
|
|
* ``openstackclient.common.exceptions`` -> ``osc_lib.exceptions``
|
|
* ``openstackclient.common.logs`` -> ``osc_lib.logs``
|
|
* ``openstackclient.common.parseractions`` -> ``osc_lib.cli.parseractions``
|
|
* ``openstackclient.common.session`` -> ``osc_lib.session``
|
|
* ``openstackclient.common.utils`` -> ``osc_lib.utils``
|
|
* ``openstackclient.tests.fakes`` -> ``osc_lib.tests.fakes``
|
|
* ``openstackclient.tests.utils`` -> ``osc_lib.tests.utils``
|
|
|
|
Additional Changes
|
|
==================
|
|
|
|
In addition to the existing public modules, other parts of OSC have been
|
|
extracted, including the base ``Command``, ``CommandManager``, ``ClientManager``
|
|
and ``Session`` classes.
|
|
|
|
ClientManager
|
|
-------------
|
|
|
|
The OSC ``ClientManager`` is responsible for managing all of the handles to the
|
|
individual API client objects as well as coordinating session and authentication
|
|
objects.
|
|
|
|
Plugins are encouraged to use the ClientManager interface for obtaining information
|
|
about global configuration.
|
|
|
|
* ``openstackclient.common.clientmanager`` -> ``osc_lib.clientmanager``
|
|
* All of the handling of the ``verify``/``insecure``/``cacert`` configuration
|
|
options has been consolidated into ``ClientManager``. This converts the ``--verify``,
|
|
``--insecure`` and ``--os-cacert`` options into a ``Requests``-compatible
|
|
``verify`` attribute and a ``cacert`` attribute for the legacy client libraries.
|
|
both are now public; the ``_insecure`` attribute has been removed.
|
|
|
|
.. list-table:: Verify/Insecure/CACert
|
|
:header-rows: 1
|
|
|
|
* - --verify
|
|
- --insecure
|
|
- --cacert
|
|
- Result
|
|
* - None
|
|
- None
|
|
-
|
|
- ``verify=True``, ``cacert=None``
|
|
* - True
|
|
- None
|
|
- None
|
|
- ``verify=True``, ``cacert=None``
|
|
* - None
|
|
- True
|
|
- None
|
|
- ``verify=False``, ``cacert=None``
|
|
* - None
|
|
- None
|
|
- <filename>
|
|
- ``verify=cacert``, ``cacert=<filename>``
|
|
* - True
|
|
- None
|
|
- <filename>
|
|
- ``verify=cacert``, ``cacert=<filename>``
|
|
* - None
|
|
- True
|
|
- <filename>
|
|
- ``verify=False``, ``cacert=None``
|
|
|
|
* A number of other ``ClientManager`` attributes have also been made public to
|
|
encourage their direct use rather than reaching in to the global options passed
|
|
in the ``ClientManager`` constructor:
|
|
|
|
* ``_verify`` -> ``verify``
|
|
* ``_cacert`` -> ``cacert``
|
|
* ``_cert`` -> ``cert``
|
|
* ``_insecure`` -> removed, use '`not verify'`
|
|
* ``_interface`` -> ``interface``
|
|
* ``_region_name`` -> ``region_name``
|
|
|
|
Shell
|
|
=====
|
|
|
|
* ``openstackclient.shell`` -> ``osc_lib.shell``
|
|
* Break up ``OpenStackShell.initialize_app()``
|
|
* leave all plugin initialization in OSC in ``_load_plugins()``
|
|
* leave all command loading in OSC in ``_load_commands()``
|
|
|
|
API
|
|
===
|
|
|
|
The API base layer is the common point for all API subclasses. It is a
|
|
wrapper around ``keystoneauth1.session.Session`` that fixes the ``request()``
|
|
interface and provides simple endpoint handling that is useful when a Service
|
|
Catalog is either not available or is insufficient. It also adds simple
|
|
implementations of the common API CRUD operations: create(), delete(), etc.
|
|
|
|
* ``KeystoneSession`` -> merged into ``BaseAPI``
|