Some options are now automatically configured by the version 1.20:
- project
- html_last_updated_fmt
- latex_engine
- latex_elements
- version
- release.
Change-Id: I3a5c7e115d0c4f52b015d0d55eb09c9836cd2fe7
We're going to remove all the code, but first, remove the docs.
Part of blueprint remove-consoleauth
Change-Id: Ie96e18ea7762b93b4116b35d7ebcfcbe53c55527
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
reno doesn't have stable branches and doesn't version its documentation.
There's no point versioning our links to same.
Change-Id: Id782d3b11715bc3211e7952fb01b42a659d06e36
Closes-Bug: #1830926
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This finalizes the removal of the placement code from nova.
This change primarily removes code and makes fixes to cmd,
test and migration tooling to adapt to the removal.
Placement tests and documention were already removed in
early patches.
A database migration that calls
consumer_obj.create_incomplete_consumers in nova-manage has been
removed.
A functional test which confirms the default incomplete
consumer user and project id has been changes so its its use of
conf.placement.incomplete_* (now removed) is replaced with a
constant. The placement server, running in the functional
test, provides its own config.
placement-related configuration is updated to only register those
opts which are relevant on the nova side. This mostly means
ksa-related opts. placement-database configuration is removed
from nova/conf/database.
tox.ini is updated to remove the group_regex required by the
placement gabbi tests. This should probably have gone when the
placement functional tests went, but was overlooked.
A release note is added which describes that this is cleanup,
the main action already happened, but points people to the
nova to placement upgrade instructions in case they haven't
done it yet.
Change-Id: I4181f39dea7eb10b84e6f5057938767b3e422aff
We were seeing infinite recursion opening an ssl socket when running
various combinations of python3, eventlet, and urllib3. It is not
clear exactly what combination of versions are affected, but for
background there is an example of this issue documented here:
https://github.com/eventlet/eventlet/issues/371
The immediate cause in nova's case was that we were calling
eventlet.monkey_patch() after importing urllib3. Specifically, change
Ie7bf5d012e2ccbcd63c262ddaf739782afcdaf56 introduced the
nova.utils.monkey_patch() method to make monkey patching common
between WSGI and non-WSGI services. Unfortunately, before executing
this method you must first import nova.utils, which imports a large
number of modules itself. Anything imported (transitively) by
nova.utils would therefore be imported before monkey patching, which
included urllib3. This triggers the infinite recursion problem
described above if you have an affected combination of library
versions.
While this specific issue may eventually be worked around or fixed in
eventlet or urllib3, it remains true that eventlet best practises are
to monkey patch as early as possible, which we were not doing. To
avoid this and hopefully future similar issues, this change ensures
that monkey patching happens as early as possible, and only a minimum
number of modules are imported first.
This change fixes monkey patching for both non-wsgi and wsgi callers:
* Non-WSGI services (nova/cmd)
This is fixed by using the new monkey_patch module, which has minimal
dependencies.
* WSGI services (nova/api/openstack)
This is fixed both by using the new monkey_patch module, and by moving
the patching point up one level so that it is done before importing
anything in nova/api/openstack/__init__.py.
This move causes issues for some external tools which load this path
from nova and now monkey patch where they previously did not. However,
it is unfortunately unavoidable to enable monkey patching for the wsgi
entry point without major restructuring. This change includes a
workaround for sphinx to avoid this issue.
This change has been through several iterations. I started with what
seemed like the simplest and most obvious change, and moved on as I
discovered more interactions which broke. It is clear that eventlet
monkey patching is extremely fragile, especially when done implicitly at
module load time as we do. I would advocate a code restructure to
improve this situation, but I think the time would be better spent
removing the eventlet dependency entirely.
Co-authored-by: Lee Yarwood <lyarwood@redhat.com>
Closes-Bug: #1808975
Closes-Bug: #1808951
Change-Id: Id46e76666b553a10ec4654d4418a9884975b5b95
Some random cleanups:
- Don't add the root or 'doc/source' directories to PYTHONPATH - it's
unnecessary since we install nova (ruling out the first) and don't
import anything from the latter
- Fix weird indentation
- Remove 'sphinx.ext.coverage', which is used to measure API doc
coverage. This is unnecessary since we don't publish API docs, save
for the versioned notification docs
- Remove unnecessary settings
- 'exclude_patterns' referred to directories that haven't existed for
a long time
- 'source_suffix', 'add_module_names' and 'show_authors' were set to
the default value
- 'release', 'version' and 'html_last_updated_fmt' are all set
automatically by 'openstackdoctheme' now
- 'modindex_common_prefix' is useless since we don't expose a module
index
All rolled into one patch for efficiencies sake.
Change-Id: I0f70c6d71299dedc59884f2bb39c8ea3c2ca8eff
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
As discussed in the mailing list [1] since cells v1
has been deprecated since Pike and the biggest user
of it (CERN as far as we know) moved to cells v2
in Queens, we can start rolling back the cells v1
specific documentation to avoid confusing people
new to nova about what cells is and making them
understand there was an optional v1.
There are still a few mentions of cells v1 left in
here for things like adding a new cell which need
to be re-written and for that I've left a todo.
Users can still get at cells v1 specific docs from
published stable branches and/or rebuilding the
docs from before this change.
[1] http://lists.openstack.org/pipermail/openstack-discuss/2019-February/002569.html
Change-Id: Idaa04a88b6883254cad9a8c6665e1c63a67e88d3
Add a document about using the "native TLS" encryption feature of QEMU
and libvirt to secure live migration data transports — including disks
that are on non-shared storage ("block migration"). This ties into the
newly introduced Nova configuration attribute,
``[libvirt]/live_migration_with_native_tls``, to that end.
Blueprint: support-qemu-native-tls-for-live-migration
Change-Id: Ic1af52bc3608f8f586244dd26dad1f47604e3278
Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
Placement documents have been published since
I667387ec262680af899a628520c107fa0d4eec24.
So use links to placement documents
https://docs.openstack.org/placement/latest/
in nova documents.
Change-Id: I218a6d11fea934e8991e41b4b36203c6ba3e3dbf
Add a default bug tag for nova doc in doc/source/conf.py.
The 'doc' tag(*) should be set for document bug
in bug reports by default.
*: https://wiki.openstack.org/wiki/Nova/BugTriage#Tag_Owner_List
TrivialFix
Change-Id: Ib2de207d368d248464770fd0a9452e325f0a0596
The code to generate a support matrix has been pulled into a common
library. Using this instead of duplicating code in various projects that
need it.
Change-Id: If5c0bf2b0dcd7dbb7d316139ecb62a936fd15439
Co-Authored-By: Stephen Finucane <stephenfin@redhat.com>
Bump the minimum version of oslo.config to 6.1.0, which adds proper
support for parsing Opt.help as rST [1]. This in turn allows us to
revert commit 75fc300901, which is a
temporary fix relying on deprecated features of Sphinx.
[1] https://review.openstack.org/#/c/553860/
Change-Id: I8f56bdce37cfc538348490052a24e463164c86a3
This adds a granular policy checking framework for
placement based on nova.policy but with a lot of
the legacy cruft removed, like the is_admin and
context_is_admin rules.
A new PlacementPolicyFixture is added along with
a new configuration option, [placement]/policy_file,
which is needed because the default policy file
that gets used in config is from [oslo_policy]/policy_file
which is being used as the nova policy file. As
far as I can tell, oslo.policy doesn't allow for
multiple policy files with different names unless
I'm misunderstanding how the policy_dirs option works.
With these changes, we can have something like:
/etc/nova/policy.json - for nova policy rules
/etc/nova/placement-policy.yaml - for placement rules
The docs are also updated to include the placement
policy sample along with a tox builder for the sample.
This starts by adding granular rules for CRUD operations
on the /resource_providers and /resource_providers/{uuid}
routes which use the same descriptions from the placement
API reference. Subsequent patches will add new granular
rules for the other routes.
Part of blueprint granular-placement-policy
Change-Id: I17573f5210314341c332fdcb1ce462a989c21940
This ensures we have version-specific references to other projects [1].
Note that this doesn't mean the URLs are actually valid - we need to do
more work (linkcheck?) here, but it's an improvement nonetheless.
[1] https://docs.openstack.org/openstackdocstheme/latest/#external-link-helper
Change-Id: Ifb99e727110c4904a85bc4a13366c2cae300b8df
This change should then allow all configuration examples to be copied
from the docs directly into nova.conf without resulting in Unicode
errors when these options are then parsed.
Note that this option is deprecated and replaced in Sphinx 1.6.6 [1] by
the smartquotes configurable. A future change will need to land to
switch between these, for now we will use and backport the
html_use_smartypants option.
[1] http://www.sphinx-doc.org/en/stable/config.html#confval-smartquotes
Change-Id: I6c47a0d74e5b5a03bc030a7e45cc7783f22ddadf
Closes-bug: #1755783
I can't see any evidence that anyone else uses our nova-idmapshift
binary, and it adds a lot of complexity (flags we never call for
example). Move the code we do actually use into the privsep
directory and simplify our calls to it. Remove the extra binary
from our install and documentation.
Change-Id: Ibce28d20d166da154833376cf51f1877b829925e
blueprint: hurrah-for-privsep
The blockdiag extension currently provides poor support for word
wrapping. While a PR has been filed, the project appears to be dormant
and it's likely going to be a while (if ever) before it gets merged. As
such, it's easier to carry our own, monkey patched version of the
plugin.
Change-Id: Iac2f8cadc688334e07ad46c5af1870b568c56e73
Co-Authored-By: Eric Fried <efried@us.ibm.com>
There have been some major changes to how scheduling works in Nova
during the Pike and Queens cycles. This documents these design changes
so that this new, more complex workflow is clearly spelled out.
Co-Authored-By: Ed Leafe <ed@leafe.com>
Change-Id: I15121d8fe9b715c0aec39dee4bfdf25ced42b481
Providing a sample policy file is all well and good, but it's not
exactly designed for readability on the web. Make use of the 'sphinxext'
module built into oslo.policy to do this.
Change-Id: I6cceeca7edcacb762daa1f22f2138e2d2334b3a2
Providing a sample configuration file is all well and good, but it's not
exactly designed for readability on the web. Make use of the 'sphinxext'
module built into oslo.config to do this.
Change-Id: I75e8f0adae7cfaaa6020870cdb20dc2144fc70eb
Per the spec [1]:
cli/ – command line tool reference docs, similar to man pages These
may be automatically generated with cliff's sphinx integration, or
manually written when auto-generation is not possible.
All of the docs currently found in 'man' fit that category, so those and
those alone are moved. It'll be a great day in the parish when we can
replace all of these with cliff's Sphinx integration.
[1] specs.openstack.org/openstack/docs-specs/specs/pike/os-manuals-migration
Change-Id: I45bed324ec37cfea7c1a574ec06af38e7b875a1c
As pep8 does not run on doc generation python code so we have some
style violations there. As it not too hard to fix the problems and
therefore enable pep8 on these files this patch proposes such a
change.
Change-Id: I26104ea66fc4f3e67f8227025f43202e483beb25
Whatever extra functionality the 'nova.ext.nova_todo' plugin provided
over the stock 'sphinx.ext.todo' extension, we're no longer using it and
it prevents us from using the stock one. Remove it and enable the stock
one instead.
Change-Id: I57fde86bf77dad87bb4d41ef8ad19f933f5c1260
There's a lot of duplication here. Given that 'conf.py' is Python, we
can simplify this greatly and focus on the real content differences.
The description text is the same for all options, but this isn't
centralized as it shouldn't be the same (this field should contain a
description of each individual tool).
Change-Id: I1a2a55ac7f041387597ef93be62411fe1673f8c1
html_last_updated_fmt option is interpreted as a
byte string in python3, causing Sphinx build to break.
This patch makes it utf-8 string.
Changing Popen to .check_output because of 3 reasons:
1. check_output() will raise CalledProcessError if
the called process returns a non-zero return code.
2. For consistency with keystone [1] and cinder [2]
3. It makes the code look much better.
[1] https://review.openstack.org/#/c/457142/
[2] https://review.openstack.org/#/c/433081
Change-Id: Ia3e792c512da46c2b92d3ad9ec1657849d379052
Right now, we can't build Nova package in RDO because the tooling still
find some bits for nova-cert in Nova codebase.
This patch aims to purge them:
- man entry for nova-cert
- nova-cert binary in setup.cfg
Change-Id: Iebee0fbcdad5808e6543e3bcad10ea1f08b8f306
This was deprecated and to set to be removed in Ocata. It was only
intended for testing purposes and not for production use. Individual
binaries will be used instead.
Change-Id: I260962ec7c4167b07e9480a04454a9cb5666f8ed
Add in feature_classification.ini that makes use of new sphinx
extension feature_matrix. While it is loosely based on the
support_matrix extension, longer term this extension will live
outside the Nova tree. As such, this has been created as a new
separate sphinx plugin.
The matrix has links to wiki page for the CI in the header of the
summary matrix. This is called a target.
Also, there are links to admin docs, API docs, and tempest test uuids
added into the feature details. An option is added to ensure these are
always present in the prototype matrix.
A maturity status is added to be clear about the level of maturity
of each feature. When in maturity mode, this is added into the summary
table in place of the status. There is also some formating for the
different maturity levels.
blueprint feature-classification
Change-Id: Ib5895e8de901f1a282d0f5c0ecb811ff8b451497
On Ubuntu 16.04 a tox package is for python3 by default
and this causes errors in building docs in tox enviroment.
In these changes iterators are replaced with lists where it's needed.
Also external command calls result are decoded from bytes to unicode.
Change-Id: I88ef54405b4bc13c269bdda55ae8289676311ee1
When building packages if git is absent, then we should not set
html_last_updated_fmt. It can still be set via the -D switch
when building with sphinx-build.
Change-Id: I5da86b7a163c0e795cd34abf79b0980a8552f79b
Closes-Bug: #1552251
This commit adds a new sphinx extension that inspects the nova code
and adds information about the existing versioned notifications to
the nofitications devref. This way the devref is automatically kept
up to date with relevant information.
Partially-Implements: bp versioned-notification-api
Change-Id: If65d5d81e26cb2b4a9f57a8c7d37d3de310ebe00
In Id7936be290b6febd18deb4c2db8ea4d678d4d9b1, we removed
entries from api-paste.ini for EC2 API service. In this
review we remove all the unnecessary code, docs and tests
associated with objectstore and ec2 service. Note that this
does not cleanup the Instance object or change any of the
versioned objects. We just drop any code associated with
testing the REST endpoint(s) that are no longer needed.
Also added shims such that the api-paste.ini from liberty
will still work (grenade job) and added logs and response
messages for prompting administrators to cleanup their
old api-paste.ini and switching to the stand alone EC2 API
project for their needs.
Change-Id: I8bf7cbaa7015bb61656ab90ccc8f944aaeebb095
os.popen() is deprecated since version 2.6. Resolved with use of
subprocess module.
Change-Id: Iea9c0501f46c57d809217912fb0f40eb2bc4f111
Closes-Bug: #1529836
This removes the one seqdiag that is in our docs which drops the whole
chain of sphinxcontrib-seqdiag which requires Pillow, which requires
that you have a C compiler and jpeg-dev package on your environment to
build documenation for a python project.
Change-Id: Ie7615d48b5524b5e5e1159a25c357f5b3f0eee0e
This commit adds sample config file generation to the nova devref
using the oslo.config sphinxconfiggen module which was recently added.
This will generate a new sample config each time build sphinx is run.
This is then used on a new docs page where you can either view the file
in its entirety, or download the file. The sphinx module was added in
the oslo.config 2.3.0 release.
Change-Id: I6d9150d81c8204bee8f775021a854928671bdd02
Commit bd7e62f796 disabled the
autodoc_index_modules flag for building docs but it wasn't really
necessary, that change was just to get the module index out of the main
docs page.
We want to autodoc the modules so we can view the actual module index in
the tox -d docs build results, which also tells us if we have correct
ReST format in doc strings.
Notes
-----
1. Several doc string blocks have to be fixed as part of this to get
the docs tox job to pass.
2. A docstring in vhdutilsv2 is updated to remove the math directive
since that requires the sphinx.ext.pngmath extension which requires
latex and dvipng packages from the distro - which is overkill for
what the docstring was actually doing with the math directive.
3. We exclude autodoc for tests since we don't really care about
docstrings on unit tests.
4. We exclude the nova.wsgi.nova-* modules since those won't build with
autodoc since they can't be imported (there is no
nova/wsgi/__init__.py module). We could arguably add the __init__.py
but it's not really necessary for what those scripts are used for.
5. The sphinx.ext.ifconfig extension is removed since there are no docs
that use the ifconfig directive.
6. Update the developer docs to explicitly point out that graphviz must
be installed prior to running tox -e docs.
7. Hide doc/source/api/autoindex.rst from the toctree so that we don't
regress the point of commit bd7e62f796.
8. unused_docs and exclude_trees options are removed from conf.py since
they are deprecated in Sphinx 1.2.3:
https://github.com/sphinx-doc/sphinx/blob/1.2.3/sphinx/config.py#L54
9. Fix imports for moved libvirt volume options.
Closes-Bug: #1471934
Change-Id: I946e2f89f2c9fc70e870faaf84e4a8b0fc703344