cinder/doc
John Griffith 106c14a84b Replication v2.1 (Cheesecake)
This focuses the replication work on a specific use case,
and eliminates some of the ambiguity in earlier versions.

Additionally this implementation addresses needs for
devices that do replication based on the whole backend-device
or on Pools.

Use case:
  DR scenario, where a storage device is rendered inoperable.
  This implementation allows the preservation of user data
  for those volumes that are of type replication-enabled.

  The goal is NOT to make failures completely transparent
  but instead to preserve data access while an Admin tries
  to rebuild/recover his/her cloud.

It's very important to note that we're no longer interested in
dealing with replication in Cinder at a Volume level.  The concept
of have "some" volumes failover, and "others" left behind, proved
to not only be overly complex and difficult to implement, but we
never identified a concrete use-case where one would use failover
in a scenario where some volumes would stay and be accessible on
a primary but other may be moved and accessed via a secondary.

In this model, it's host/backend based.  So when you failover,
you're failing over an entire backend.  We heavily leverage
existing resources, specifically services, and capabilities.

Implements: blueprint replication-update

Change-Id: If862bcd18515098639f94a8294a8e44e1358c52a
2016-02-26 13:15:19 -07:00
..
ext Replace xrange() with six.moves.range() 2015-06-16 10:46:40 +02:00
source Replication v2.1 (Cheesecake) 2016-02-26 13:15:19 -07:00
.gitignore Initial fork out of Nova. 2012-05-03 10:48:26 -07:00
find_autodoc_modules.sh Fixes a small issue in find_autodoc_modules.sh 2015-01-23 14:38:44 +08:00
generate_autodoc_index.sh Initial fork out of Nova. 2012-05-03 10:48:26 -07:00
Makefile Initial fork out of Nova. 2012-05-03 10:48:26 -07:00
README.rst Complete the doc/README.rst instructions to build docs 2015-04-16 08:13:04 +00:00

Building the docs

Dependencies

Sphinx

You'll need sphinx (the python one) and if you are using the virtualenv you'll need to install it in the virtualenv specifically so that it can load the cinder modules.

pip install Sphinx
Graphviz

Some of the diagrams are generated using the dot language from Graphviz.

sudo apt-get install graphviz

Use make

Just type make:

% make

Look in the Makefile for more targets.

Manually

  1. Generate the code.rst file so that Sphinx will pull in our docstrings:

    % ./generate_autodoc_index.sh > source/code.rst
  2. Run `sphinx_build`:

    % sphinx-build -b html source build/html

Use tox

The easiest way to build the docs and avoid dealing with all dependencies is to let tox prepare a virtualenv and run the build_sphinx target inside the virtualenv:

% cd ..
% tox -e docs

The docs have been built

Check out the build directory to find them. Yay!