2017-07-12 10:40:37 +01:00
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
|
|
# not use this file except in compliance with the License. You may obtain
|
|
|
|
# a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
|
|
# License for the specific language governing permissions and limitations
|
|
|
|
# under the License.
|
|
|
|
#
|
|
|
|
# nova documentation build configuration file
|
2010-05-27 23:05:26 -07:00
|
|
|
#
|
2017-06-28 11:15:40 +01:00
|
|
|
# Refer to the Sphinx documentation for advice on configuring this file:
|
2010-05-27 23:05:26 -07:00
|
|
|
#
|
2017-06-28 11:15:40 +01:00
|
|
|
# http://www.sphinx-doc.org/en/stable/config.html
|
2010-05-27 23:05:26 -07:00
|
|
|
|
2017-07-12 10:40:37 +01:00
|
|
|
import os
|
2012-08-17 11:27:03 +08:00
|
|
|
import sys
|
2010-05-27 23:05:26 -07:00
|
|
|
|
|
|
|
# If extensions (or modules to document with autodoc) are in another directory,
|
|
|
|
# add these directories to sys.path here. If the directory is relative to the
|
|
|
|
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
2010-11-07 17:18:41 -05:00
|
|
|
sys.path.insert(0, os.path.abspath('../'))
|
2010-05-27 23:05:26 -07:00
|
|
|
|
2012-08-17 11:27:03 +08:00
|
|
|
# -- General configuration ----------------------------------------------------
|
2010-05-27 23:05:26 -07:00
|
|
|
|
2012-08-17 11:27:03 +08:00
|
|
|
# Add any Sphinx extension module names here, as strings. They can be
|
|
|
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
2010-11-12 10:02:03 -08:00
|
|
|
|
2019-03-19 16:26:15 +00:00
|
|
|
extensions = [
|
|
|
|
'sphinx.ext.autodoc',
|
|
|
|
'sphinx.ext.todo',
|
|
|
|
'sphinx.ext.graphviz',
|
|
|
|
'openstackdocstheme',
|
|
|
|
'sphinx_feature_classification.support_matrix',
|
|
|
|
'oslo_config.sphinxconfiggen',
|
|
|
|
'oslo_config.sphinxext',
|
|
|
|
'oslo_policy.sphinxpolicygen',
|
|
|
|
'oslo_policy.sphinxext',
|
|
|
|
'ext.versioned_notifications',
|
|
|
|
'ext.feature_matrix',
|
|
|
|
'sphinxcontrib.actdiag',
|
|
|
|
'sphinxcontrib.seqdiag',
|
|
|
|
]
|
2010-11-12 10:02:03 -08:00
|
|
|
|
2017-06-27 05:12:31 +00:00
|
|
|
# openstackdocstheme options
|
|
|
|
repository_name = 'openstack/nova'
|
|
|
|
bug_project = 'nova'
|
2018-11-22 14:03:19 +09:00
|
|
|
bug_tag = 'doc'
|
2017-06-27 05:12:31 +00:00
|
|
|
|
2015-08-13 16:18:46 -04:00
|
|
|
config_generator_config_file = '../../etc/nova/nova-config-generator.conf'
|
|
|
|
sample_config_basename = '_static/nova'
|
|
|
|
|
2017-11-30 18:09:00 -05:00
|
|
|
policy_generator_config_file = [
|
|
|
|
('../../etc/nova/nova-policy-generator.conf', '_static/nova'),
|
|
|
|
('../../etc/nova/placement-policy-generator.conf', '_static/placement')
|
|
|
|
]
|
2016-09-26 14:53:18 +01:00
|
|
|
|
2017-08-23 09:59:54 +01:00
|
|
|
actdiag_html_image_format = 'SVG'
|
|
|
|
actdiag_antialias = True
|
|
|
|
|
2017-09-21 15:57:09 -05:00
|
|
|
seqdiag_html_image_format = 'SVG'
|
|
|
|
seqdiag_antialias = True
|
|
|
|
|
2010-05-27 23:05:26 -07:00
|
|
|
todo_include_todos = True
|
|
|
|
|
|
|
|
# The master toctree document.
|
|
|
|
master_doc = 'index'
|
|
|
|
|
|
|
|
# General information about the project.
|
|
|
|
project = u'nova'
|
2013-02-22 09:13:07 -05:00
|
|
|
copyright = u'2010-present, OpenStack Foundation'
|
2010-05-27 23:05:26 -07:00
|
|
|
|
|
|
|
# The name of the Pygments (syntax highlighting) style to use.
|
|
|
|
pygments_style = 'sphinx'
|
|
|
|
|
2012-08-17 11:27:03 +08:00
|
|
|
# -- Options for man page output ----------------------------------------------
|
2010-11-17 14:28:09 -06:00
|
|
|
|
2012-03-07 13:43:37 +08:00
|
|
|
# Grouping the document tree for man pages.
|
2010-11-17 14:28:09 -06:00
|
|
|
# List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual'
|
|
|
|
|
2017-07-12 10:48:01 +01:00
|
|
|
_man_pages = [
|
|
|
|
('nova-api-metadata', u'Cloud controller fabric'),
|
|
|
|
('nova-api-os-compute', u'Cloud controller fabric'),
|
|
|
|
('nova-api', u'Cloud controller fabric'),
|
|
|
|
('nova-compute', u'Cloud controller fabric'),
|
|
|
|
('nova-console', u'Cloud controller fabric'),
|
|
|
|
('nova-consoleauth', u'Cloud controller fabric'),
|
|
|
|
('nova-dhcpbridge', u'Cloud controller fabric'),
|
|
|
|
('nova-manage', u'Cloud controller fabric'),
|
|
|
|
('nova-network', u'Cloud controller fabric'),
|
|
|
|
('nova-novncproxy', u'Cloud controller fabric'),
|
|
|
|
('nova-spicehtml5proxy', u'Cloud controller fabric'),
|
|
|
|
('nova-serialproxy', u'Cloud controller fabric'),
|
|
|
|
('nova-rootwrap', u'Cloud controller fabric'),
|
|
|
|
('nova-scheduler', u'Cloud controller fabric'),
|
|
|
|
('nova-xvpvncproxy', u'Cloud controller fabric'),
|
|
|
|
('nova-conductor', u'Cloud controller fabric'),
|
2012-08-21 21:04:39 +08:00
|
|
|
]
|
2010-05-27 23:05:26 -07:00
|
|
|
|
2017-07-12 10:48:01 +01:00
|
|
|
man_pages = [
|
2017-06-27 11:01:38 +01:00
|
|
|
('cli/%s' % name, name, description, [u'OpenStack'], 1)
|
2017-07-12 10:48:01 +01:00
|
|
|
for name, description in _man_pages]
|
|
|
|
|
2012-08-17 11:27:03 +08:00
|
|
|
# -- Options for HTML output --------------------------------------------------
|
2010-05-27 23:05:26 -07:00
|
|
|
|
2017-06-27 05:12:31 +00:00
|
|
|
# The theme to use for HTML and HTML Help pages. Major themes that come with
|
|
|
|
# Sphinx are currently 'default' and 'sphinxdoc'.
|
|
|
|
html_theme = 'openstackdocs'
|
|
|
|
|
2010-05-27 23:05:26 -07:00
|
|
|
# Add any paths that contain custom static files (such as style sheets) here,
|
|
|
|
# relative to this directory. They are copied after the builtin static files,
|
|
|
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
2014-11-21 14:57:07 +00:00
|
|
|
html_static_path = ['_static']
|
2010-05-27 23:05:26 -07:00
|
|
|
|
2017-07-27 12:12:55 -04:00
|
|
|
# Add any paths that contain "extra" files, such as .htaccess or
|
|
|
|
# robots.txt.
|
|
|
|
html_extra_path = ['_extra']
|
|
|
|
|
2016-04-13 09:02:46 +02:00
|
|
|
|
2012-08-17 11:27:03 +08:00
|
|
|
# -- Options for LaTeX output -------------------------------------------------
|
2010-05-27 23:05:26 -07:00
|
|
|
|
|
|
|
# Grouping the document tree into LaTeX files. List of tuples
|
2012-08-17 11:27:03 +08:00
|
|
|
# (source start file, target name, title, author, documentclass
|
|
|
|
# [howto/manual]).
|
2012-08-21 21:04:39 +08:00
|
|
|
latex_documents = [
|
|
|
|
('index', 'Nova.tex', u'Nova Documentation',
|
2013-05-31 08:29:16 -04:00
|
|
|
u'OpenStack Foundation', 'manual'),
|
2012-08-21 21:04:39 +08:00
|
|
|
]
|
2017-08-23 10:03:14 +01:00
|
|
|
|
2019-03-19 16:26:15 +00:00
|
|
|
|
2018-02-05 15:15:34 +00:00
|
|
|
# -- Options for openstackdocstheme -------------------------------------------
|
|
|
|
|
|
|
|
# keep this ordered to keep mriedem happy
|
2019-01-09 19:24:56 +01:00
|
|
|
#
|
|
|
|
# NOTE(kchamart): Versioned TripleO Docs is not a yet a "thing". Remove
|
|
|
|
# this note when they can be versioned, and add 'tripleo-docs' to the
|
|
|
|
# set of projects below.
|
|
|
|
|
2018-02-05 15:15:34 +00:00
|
|
|
openstack_projects = [
|
|
|
|
'ceilometer',
|
|
|
|
'cinder',
|
|
|
|
'glance',
|
|
|
|
'horizon',
|
|
|
|
'ironic',
|
|
|
|
'keystone',
|
|
|
|
'neutron',
|
|
|
|
'nova',
|
|
|
|
'oslo.log',
|
|
|
|
'oslo.messaging',
|
|
|
|
'oslo.i18n',
|
|
|
|
'oslo.versionedobjects',
|
2018-10-30 10:13:24 +09:00
|
|
|
'placement',
|
2018-02-05 15:15:34 +00:00
|
|
|
'python-novaclient',
|
|
|
|
'python-openstackclient',
|
|
|
|
'reno',
|
|
|
|
'watcher',
|
|
|
|
]
|
2017-08-23 10:03:14 +01:00
|
|
|
# -- Custom extensions --------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
def monkey_patch_blockdiag():
|
|
|
|
"""Monkey patch the blockdiag library.
|
|
|
|
|
|
|
|
The default word wrapping in blockdiag is poor, and breaks on a fixed
|
|
|
|
text width rather than on word boundaries. There's a patch submitted to
|
|
|
|
resolve this [1]_ but it's unlikely to merge anytime soon.
|
|
|
|
|
2018-03-27 16:16:49 +01:00
|
|
|
In addition, blockdiag monkey patches a core library function,
|
|
|
|
``codecs.getreader`` [2]_, to work around some Python 3 issues. Because
|
|
|
|
this operates in the same environment as other code that uses this library,
|
|
|
|
it ends up causing issues elsewhere. We undo these destructive changes
|
|
|
|
pending a fix.
|
|
|
|
|
2017-08-23 10:03:14 +01:00
|
|
|
TODO: Remove this once blockdiag is bumped to 1.6, which will hopefully
|
|
|
|
include the fix.
|
|
|
|
|
|
|
|
.. [1] https://bitbucket.org/blockdiag/blockdiag/pull-requests/16/
|
2018-03-27 16:16:49 +01:00
|
|
|
.. [2] https://bitbucket.org/blockdiag/blockdiag/src/1.5.3/src/blockdiag/utils/compat.py # noqa
|
2017-08-23 10:03:14 +01:00
|
|
|
"""
|
2018-03-27 16:16:49 +01:00
|
|
|
import codecs
|
|
|
|
from codecs import getreader
|
|
|
|
|
2017-08-23 10:03:14 +01:00
|
|
|
from blockdiag.imagedraw import textfolder
|
|
|
|
|
2018-03-27 16:16:49 +01:00
|
|
|
# oh, blockdiag. Let's undo the mess you made.
|
|
|
|
codecs.getreader = getreader
|
|
|
|
|
2017-08-23 10:03:14 +01:00
|
|
|
def splitlabel(text):
|
|
|
|
"""Split text to lines as generator.
|
|
|
|
|
|
|
|
Every line will be stripped. If text includes characters "\n\n", treat
|
|
|
|
as line separator. Ignore '\n' to allow line wrapping.
|
|
|
|
"""
|
|
|
|
lines = [x.strip() for x in text.splitlines()]
|
|
|
|
out = []
|
|
|
|
|
|
|
|
for line in lines:
|
|
|
|
if line:
|
|
|
|
out.append(line)
|
|
|
|
else:
|
|
|
|
yield ' '.join(out)
|
|
|
|
out = []
|
|
|
|
|
|
|
|
yield ' '.join(out)
|
|
|
|
|
|
|
|
def splittext(metrics, text, bound, measure='width'):
|
|
|
|
folded = [' ']
|
|
|
|
for word in text.split():
|
|
|
|
# Try appending the word to the last line
|
|
|
|
tryline = ' '.join([folded[-1], word]).strip()
|
|
|
|
textsize = metrics.textsize(tryline)
|
|
|
|
if getattr(textsize, measure) > bound:
|
|
|
|
# Start a new line. Appends `word` even if > bound.
|
|
|
|
folded.append(word)
|
|
|
|
else:
|
|
|
|
folded[-1] = tryline
|
|
|
|
return folded
|
|
|
|
|
|
|
|
# monkey patch those babies
|
|
|
|
textfolder.splitlabel = splitlabel
|
|
|
|
textfolder.splittext = splittext
|
|
|
|
|
|
|
|
|
|
|
|
monkey_patch_blockdiag()
|