Merge "Set autodoc_index_modules=True so tox -e docs builds module docs again"
This commit is contained in:
commit
61f86e8b69
|
@ -30,8 +30,6 @@ sys.path.insert(0, os.path.abspath('./'))
|
|||
extensions = ['sphinx.ext.autodoc',
|
||||
'ext.nova_todo',
|
||||
'sphinx.ext.coverage',
|
||||
'sphinx.ext.pngmath',
|
||||
'sphinx.ext.ifconfig',
|
||||
'sphinx.ext.graphviz',
|
||||
'oslosphinx',
|
||||
"ext.support_matrix",
|
||||
|
@ -73,14 +71,14 @@ version = version_info.version_string()
|
|||
# Else, today_fmt is used as the format for a strftime call.
|
||||
#today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of documents that shouldn't be included in the build.
|
||||
unused_docs = [
|
||||
# A list of glob-style patterns that should be excluded when looking for
|
||||
# source files. They are matched against the source file names relative to the
|
||||
# source directory, using slashes as directory separators on all platforms.
|
||||
exclude_patterns = [
|
||||
'api/nova.wsgi.nova-*',
|
||||
'api/nova.tests.*',
|
||||
]
|
||||
|
||||
# List of directories, relative to source directory, that shouldn't be searched
|
||||
# for source files.
|
||||
exclude_trees = []
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use
|
||||
# for all documents.
|
||||
#default_role = None
|
||||
|
|
|
@ -127,6 +127,8 @@ Grab the code from git::
|
|||
Building the Documentation
|
||||
==========================
|
||||
|
||||
Install the prerequisite packages: graphviz
|
||||
|
||||
To do a full documentation build, issue the following command while
|
||||
the nova directory is current.
|
||||
|
||||
|
|
|
@ -190,6 +190,16 @@ Module Reference
|
|||
|
||||
services
|
||||
|
||||
|
||||
.. # NOTE(mriedem): This is the section where we hide things that we don't
|
||||
# actually want in the table of contents but sphinx build would fail if
|
||||
# they aren't in the toctree somewhere. For example, we hide api/autoindex
|
||||
# since that's already covered with modindex below.
|
||||
.. toctree::
|
||||
:hidden:
|
||||
|
||||
api/autoindex
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
||||
|
|
|
@ -40,8 +40,9 @@ class MonitorBase(object):
|
|||
|
||||
Get available metric names, which are represented by a set of keys
|
||||
that can be used to check conflicts and duplications
|
||||
|
||||
:returns: set containing one or more values from
|
||||
nova.objects.fields.MonitorMetricType.ALL constants
|
||||
:py:attr: nova.objects.fields.MonitorMetricType.ALL
|
||||
"""
|
||||
raise NotImplementedError('get_metric_names')
|
||||
|
||||
|
|
|
@ -820,10 +820,12 @@ class API(base_api.NetworkAPI):
|
|||
|
||||
:param context - Request context.
|
||||
:param port_id - The id of port to be queried.
|
||||
:returns: A dict containing port data keyed by 'port'.
|
||||
e.g. {'port': {'port_id': 'abcd',
|
||||
'fixed_ip_address': '1.2.3.4'}}
|
||||
:returns: A dict containing port data keyed by 'port', e.g.
|
||||
|
||||
::
|
||||
|
||||
{'port': {'port_id': 'abcd',
|
||||
'fixed_ip_address': '1.2.3.4'}}
|
||||
"""
|
||||
return dict(port=self._show_port(context, port_id))
|
||||
|
||||
|
@ -835,7 +837,7 @@ class API(base_api.NetworkAPI):
|
|||
:param neutron_client - A neutron client.
|
||||
:param fields - The condition fields to query port data.
|
||||
:returns: A dict of port data.
|
||||
e.g. {'port_id': 'abcd', 'fixed_ip_address': '1.2.3.4'}}
|
||||
e.g. {'port_id': 'abcd', 'fixed_ip_address': '1.2.3.4'}
|
||||
"""
|
||||
if not neutron_client:
|
||||
neutron_client = get_client(context)
|
||||
|
|
|
@ -469,15 +469,16 @@ class NovaObject(object):
|
|||
def obj_reset_changes(self, fields=None, recursive=False):
|
||||
"""Reset the list of fields that have been changed.
|
||||
|
||||
.. note::
|
||||
|
||||
- This is NOT "revert to previous values"
|
||||
- Specifying fields on recursive resets will only be honored at the
|
||||
top level. Everything below the top will reset all.
|
||||
|
||||
:param fields: List of fields to reset, or "all" if None.
|
||||
:param recursive: Call obj_reset_changes(recursive=True) on
|
||||
any sub-objects within the list of fields
|
||||
being reset.
|
||||
|
||||
NOTE: This is NOT "revert to previous values"
|
||||
NOTE: Specifying fields on recursive resets will only be
|
||||
honored at the top level. Everything below the top
|
||||
will reset all.
|
||||
"""
|
||||
if recursive:
|
||||
for field in self.obj_get_changes():
|
||||
|
|
|
@ -97,7 +97,7 @@ class ImageMeta(base.NovaObject):
|
|||
:param instance: Instance object
|
||||
|
||||
Creates a new object instance, initializing from the
|
||||
system metadata "image_" properties associated with
|
||||
system metadata "image_*" properties associated with
|
||||
instance
|
||||
|
||||
:returns: an ImageMeta instance
|
||||
|
|
|
@ -27,8 +27,8 @@ def getcallargs(function, *args, **kwargs):
|
|||
|
||||
This method can only properly grab arguments which are passed in as
|
||||
keyword arguments, or given names by the method being called. This means
|
||||
that an *arg in a method signature and any arguments captured by it will
|
||||
be left out of the results.
|
||||
that an ``*arg`` in a method signature and any arguments captured by it
|
||||
will be left out of the results.
|
||||
"""
|
||||
keyed_args = {}
|
||||
argnames, varargs, keywords, defaults = inspect.getargspec(function)
|
||||
|
|
|
@ -47,24 +47,26 @@ class FlavorManageFullstack(test.TestCase):
|
|||
|
||||
POST /v2/flavors:
|
||||
|
||||
{
|
||||
'name': NAME, # string, required unique
|
||||
'id': ID, # string, required unique
|
||||
'ram': RAM, # in MB, required
|
||||
'vcpus': VCPUS, # int value, required
|
||||
'disk': DISK, # in GB, required
|
||||
'OS-FLV-EXT-DATA:ephemeral', # in GB, ephemeral disk size
|
||||
'is_public': IS_PUBLIC, # boolean
|
||||
'swap': SWAP, # in GB?
|
||||
'rxtx_factor': RXTX, # ???
|
||||
}
|
||||
::
|
||||
|
||||
{
|
||||
'name': NAME, # string, required unique
|
||||
'id': ID, # string, required unique
|
||||
'ram': RAM, # in MB, required
|
||||
'vcpus': VCPUS, # int value, required
|
||||
'disk': DISK, # in GB, required
|
||||
'OS-FLV-EXT-DATA:ephemeral', # in GB, ephemeral disk size
|
||||
'is_public': IS_PUBLIC, # boolean
|
||||
'swap': SWAP, # in GB?
|
||||
'rxtx_factor': RXTX, # ???
|
||||
}
|
||||
|
||||
Returns Flavor
|
||||
|
||||
DELETE /v2/flavors/ID
|
||||
|
||||
|
||||
Functional Test Scope::
|
||||
Functional Test Scope:
|
||||
|
||||
This test starts the wsgi stack for the nova api services, uses an
|
||||
in memory database to ensure the path through the wsgi layer to
|
||||
|
|
|
@ -83,19 +83,6 @@ utils_opts = [
|
|||
help='Explicitly specify the temporary working directory'),
|
||||
]
|
||||
|
||||
""" This group is for very specific reasons.
|
||||
|
||||
If you're:
|
||||
- Working around an issue in a system tool (e.g. libvirt or qemu) where the fix
|
||||
is in flight/discussed in that community.
|
||||
- The tool can be/is fixed in some distributions and rather than patch the code
|
||||
those distributions can trivially set a config option to get the "correct"
|
||||
behavior.
|
||||
This is a good place for your workaround.
|
||||
|
||||
Please use with care!
|
||||
Document the BugID that your workaround is paired with."""
|
||||
|
||||
workarounds_opts = [
|
||||
cfg.BoolOpt('disable_rootwrap',
|
||||
default=False,
|
||||
|
@ -138,6 +125,23 @@ workarounds_opts = [
|
|||
"the Nova database they will have to be synchronized "
|
||||
"manually. See https://bugs.launchpad.net/bugs/1444630"),
|
||||
]
|
||||
""" The workarounds_opts group is for very specific reasons.
|
||||
|
||||
If you're:
|
||||
|
||||
- Working around an issue in a system tool (e.g. libvirt or qemu) where the
|
||||
fix is in flight/discussed in that community.
|
||||
- The tool can be/is fixed in some distributions and rather than patch the
|
||||
code those distributions can trivially set a config option to get the
|
||||
"correct" behavior.
|
||||
|
||||
Then this is a good place for your workaround.
|
||||
|
||||
.. warning::
|
||||
|
||||
Please use with care! Document the BugID that your workaround is paired with.
|
||||
"""
|
||||
|
||||
CONF = cfg.CONF
|
||||
CONF.register_opts(monkey_patch_opts)
|
||||
CONF.register_opts(utils_opts)
|
||||
|
|
|
@ -82,13 +82,13 @@ def get_block_device_info(instance, block_device_mapping):
|
|||
Virt drivers expect block device mapping to be presented in the format
|
||||
of a dict containing the following keys:
|
||||
|
||||
root_device_name: device name of the root disk
|
||||
ephemerals: a (potentially empty) list of DriverEphemeralBlockDevice
|
||||
instances
|
||||
swap: An instance of DriverSwapBlockDevice or None
|
||||
block_device_mapping: a (potentially empty) list of
|
||||
DriverVolumeBlockDevice or any of it's more
|
||||
specialized subclasses.
|
||||
- root_device_name: device name of the root disk
|
||||
- ephemerals: a (potentially empty) list of DriverEphemeralBlockDevice
|
||||
instances
|
||||
- swap: An instance of DriverSwapBlockDevice or None
|
||||
- block_device_mapping: a (potentially empty) list of
|
||||
DriverVolumeBlockDevice or any of it's more
|
||||
specialized subclasses.
|
||||
"""
|
||||
from nova.virt import block_device as virt_block_device
|
||||
|
||||
|
|
|
@ -126,15 +126,12 @@ class VHDUtilsV2(vhdutils.VHDUtils):
|
|||
new_vhd_file_size):
|
||||
"""Get internal size of a VHD according to new VHD file size.
|
||||
|
||||
.. math::
|
||||
VHDX Size = Header (1 MB) + Log + Metadata Region + BAT
|
||||
+ Payload Blocks
|
||||
VHDX Size = Header (1MB) + Log + Metadata Region + BAT + Payload Blocks
|
||||
|
||||
The chunk size is the maximum number of bytes described by a SB
|
||||
block.
|
||||
|
||||
.. math::
|
||||
Chunk size = 2^{23} * LogicalSectorSize
|
||||
Chunk size = 2^{23} * LogicalSectorSize
|
||||
|
||||
:param str vhd_path: VHD file path
|
||||
:param new_vhd_file_size: Size of the new VHD file.
|
||||
|
|
|
@ -4919,11 +4919,13 @@ class LibvirtDriver(driver.ComputeDriver):
|
|||
|
||||
:param context: security context
|
||||
:param instance: nova.objects.instance.Instance object
|
||||
:returns
|
||||
:tempfile: A dict containing the tempfile info on the destination
|
||||
host
|
||||
:None: 1. If the instance path is not existing.
|
||||
2. If the image backend is shared block storage type.
|
||||
:returns:
|
||||
- tempfile: A dict containing the tempfile info on the destination
|
||||
host
|
||||
- None:
|
||||
|
||||
1. If the instance path is not existing.
|
||||
2. If the image backend is shared block storage type.
|
||||
"""
|
||||
if self.image_backend.backend().is_shared_block_storage():
|
||||
return None
|
||||
|
|
|
@ -845,9 +845,10 @@ class Host(object):
|
|||
def create_secret(self, usage_type, usage_id, password=None):
|
||||
"""Create a secret.
|
||||
|
||||
usage_type: one of 'iscsi', 'ceph', 'rbd' or 'volume'
|
||||
:param usage_type: one of 'iscsi', 'ceph', 'rbd' or 'volume'
|
||||
'rbd' will be converted to 'ceph'.
|
||||
usage_id: name of resource in secret
|
||||
:param usage_id: name of resource in secret
|
||||
:param password: optional secret value to set
|
||||
"""
|
||||
secret_conf = vconfig.LibvirtConfigSecret()
|
||||
secret_conf.ephemeral = False
|
||||
|
|
|
@ -30,10 +30,10 @@ import nova.virt.ironic.driver
|
|||
import nova.virt.libvirt.driver
|
||||
import nova.virt.libvirt.imagebackend
|
||||
import nova.virt.libvirt.imagecache
|
||||
import nova.virt.libvirt.lvm
|
||||
import nova.virt.libvirt.storage.lvm
|
||||
import nova.virt.libvirt.utils
|
||||
import nova.virt.libvirt.vif
|
||||
import nova.virt.libvirt.volume
|
||||
import nova.virt.libvirt.volume.volume
|
||||
import nova.virt.netutils
|
||||
import nova.virt.vmwareapi.driver
|
||||
import nova.virt.vmwareapi.images
|
||||
|
@ -81,10 +81,10 @@ def list_opts():
|
|||
nova.virt.libvirt.driver.libvirt_opts,
|
||||
nova.virt.libvirt.imagebackend.__imagebackend_opts,
|
||||
nova.virt.libvirt.imagecache.imagecache_opts,
|
||||
nova.virt.libvirt.lvm.lvm_opts,
|
||||
nova.virt.libvirt.storage.lvm.lvm_opts,
|
||||
nova.virt.libvirt.utils.libvirt_opts,
|
||||
nova.virt.libvirt.vif.libvirt_vif_opts,
|
||||
nova.virt.libvirt.volume.volume_opts,
|
||||
nova.virt.libvirt.volume.volume.volume_opts,
|
||||
)),
|
||||
('vmware',
|
||||
itertools.chain(
|
||||
|
|
11
setup.cfg
11
setup.cfg
|
@ -218,5 +218,14 @@ output_file = nova/locale/nova.pot
|
|||
universal = 1
|
||||
|
||||
[pbr]
|
||||
autodoc_index_modules = 0
|
||||
# Have pbr generate the module indexes like sphinx autodoc
|
||||
autodoc_index_modules = True
|
||||
|
||||
# Exclude modules that won't build with autodoc (or that we don't want doc'ed);
|
||||
# this requires updating the exclude_patterns variable in doc/source/conf.py
|
||||
autodoc_exclude_modules = nova.wsgi.nova-*
|
||||
nova.tests.*
|
||||
|
||||
# Treat sphinx warnings as errors during the docs build; this helps us keep
|
||||
# the documentation clean.
|
||||
warnerrors = true
|
||||
|
|
Loading…
Reference in New Issue