cinder/doc
Alan Bishop 31b34e91e0 Remove the need for project_id from API endpoints
Inclusion of a project_id in API URLs is now optional, and no longer
required. Removing the project_id requirement facilitates supporting
Secure RBAC's notion of system scope, in which an API method is not
associated with a specific project.

The API v3 routing is enhanced to provide duplicate routes for API
methods that traditionally required a project_id in the URL:
- The existing route for which a project_id is in the URL
- A new route for when the URL does not include a project_id

To test both routes and ensure there are no regresssions, the "API
samples" functional tests include a project_id in the URLs, and the
rest of the functional tests do not include the project_id. This is
handled by changing the 'noauth' WSGI middleware to no longer add the
project_id, and adding a new 'noauth_include_project_id' middleware
filter that implements the legacy behavior.

A new microversion V3.67 is introduced, but it only serves to inform
clients whether the project_id is optional or required. When an API
node supports mv 3.67, the project_id is optional in all API requests,
even when the request specifies a earlier microversion. See the spec
Ia44f199243be8f862520d7923007e7182b32f67d for more details on this
behavior.

Note: Much of the groundwork for this is based on manila's patch
I5127e150e8a71e621890f30dba6720b3932cf583.

DocImpact
APIImpact

Implements: blueprint project-id-optional-in-urls
Change-Id: I3729cbe1902ab4dc335451d13ed921ec236fb8fd
2022-02-08 08:32:23 -08:00
..
ext Make docs build parallel 2020-10-22 10:28:01 -05:00
source Remove the need for project_id from API endpoints 2022-02-08 08:32:23 -08:00
.gitignore Make doc/source directory compliant with design in spec 2017-07-19 15:59:02 -05:00
README.rst Update and replace http with https for doc links in Cinder 2017-07-27 09:58:23 +00:00
requirements.txt Use os-brick 4.3.0 2021-03-25 13:15:43 -04:00

Cinder Development Docs

Files under this directory tree are used for generating the documentation for the Cinder source code.

Developer documentation is built to: https://docs.openstack.org/cinder/latest/

Tools

Sphinx

The Python Sphinx package is used to generate the documentation output. Information on Sphinx, including formatting information for RST source files, can be found in the Sphinx online documentation.

Graphviz

Some of the diagrams are generated using the dot language from Graphviz. See the Graphviz documentation for Graphviz and dot language usage information.

Building Documentation

Doc builds are performed using tox with the docs target:

% cd ..
% tox -e docs