Mistakenly the computing team merged two specs in nova that actually
targeting the placement service. Placement has its own specs directory
to store these. So this patch adds the these specs to the placement
The only change in the two specifications compared the ones approved in
nova-specs repository is the removal of the note from the top that they
are targeting placement service as it is now obvious.
As per the community goal of migrating the policy file
the format from JSON to YAML, we need to do two things:
1. Change the default value of '[oslo_policy] policy_file''
config option from 'policy.json' to 'policy.yaml' with
2. Deprecate the JSON formatted policy file on the project side
via warning in doc and releasenotes.
Also replace policy.json to policy.yaml ref from doc and tests.
[placement]/policy_file config option is deprecated since Train
release in favor of ``[oslo_policy]/policy_file`` config option.
In wallaby cycle, default value of ``[oslo_policy]/policy_file``
is going to change to 'policy.yaml' so it is better to remove
the old deprecated config option to avoid confusion for operator.
Switch to openstackdocstheme 2.2.1 and reno 3.1.0 versions. Using
these versions will allow especially:
* Linking from HTML to PDF document
* Allow parallel building of documents
* Fix some rendering problems
Update Sphinx version as well.
Set openstackdocs_pdf_link to link to PDF file. Note that
the link to the published document only works on docs.openstack.org
where the PDF file is placed in the top-level html directory. The
site-preview places the PDF in a pdf directory.
Disable openstackdocs_auto_name to use 'project' variable as name.
Change pygments_style to 'native' since old theme version always used
'native' and the theme now respects the setting and using 'sphinx' can
lead to some strange rendering.
openstackdocstheme renames some variables, so follow the renames
before the next release removes them. A couple of variables are also
not needed anymore, remove them.
The --skip-locks flag can be used along with --migrate in
deployments where table locking operations can't be performed.
For example, Percona XtraDB Cluster only has experimental support
for explicit table locking operations and attempts to use locking
will result in errors when PXC Strict Mode is set to ENFORCING.
Commit 3f1a89c7dd changed most of the
install docs to use "Default" instead of "default" for project/user
domain names according to the keystone docs, but the install doc for
PyPI has been missed. This patch fixes it accordingly.
The contibutor document had subpages section on the top, but it was
weird (especially in pdf) that subpages were before sections of
"overview" and "big picture".
This patch sorts it out creating a new section of "architecture".
In the top index page of the document, some sections had actual
contents and some had only links to the contents. However, this
makes it difficult for readers to get what is in the document and
what isn't at a glance.
This patch cleans it up to simplify the top index. This patch also
renames some of the directories to follow the doc layout rules.
Note that the following ToDo is left for further cleanup:
* Publish the api guide and move the microversion history to
the `/api-guide` directory
In the document source, we had a hidden toctree to avoid an error
when creating an html document. However, the contents in the hidden
toctree appears explicitly as actual subsections. This resulted in
having wrong subsection structures when creating a pdf document.
This patch fixes it by adding explicit sections for the contents
in the (previously) hidden toctree.
This follows the instructions  in an attempt to build pdf docs.
Several doc/source/conf.py changes are required to get this to work.
The most important one is
which prevents the build process from stalling out and dropping the
caller into an interactive session.
Sphinx 2.2.0 gets upset when a directory it is configured for does
The _static directory is only used for automatically generated
configuration and policy sample files.
The api documentation is now published on docs.openstack.org instead
of developer.openstack.org. Update all links that are changed to the
Note that redirects will be set up as well but let's point now to the
For details, see:
Forbidden aggregates was added in microversion 1.32 (part of Train)
and allocation candidates mappings was added in 1.34 so those specs
have been moved to implemented.
An _extra/.htaccess is added to redirect the approved spec to the
implemented spec. If we're experiencing enough volume of specs to
warrant automating this, it should be easy to do, but at this point
we don't have, nor intend to have, large numbers of specs.
While doing that I noticed the management of spec documents can be
simplified somewhat by moving placeholders and templates to a
non-release specific location. The placeholder can then be used
as a symlink when in approved or implemented when those are first
created or otherwise empty (an empty directory when doing a table of
contents glob is an error so some kind of file is needed).
Contribution docs are updated to reflect the location of the
template.rst file. The template.rst file is updated to be release
This spec aims at providing support for services to model
``consumer types`` in placement. While placement defines a
consumer to be an entity consuming resources from a provider
it does not provide a way to identify similar "types" of
consumers and henceforth allow services to group/query them
based on their types. This spec proposes to associate each
consumer to a particular type defined by the service owning
Add a clarifying note about running pip (e.g. you might have to spell it
pip3) in a centralized place and link it from elsewhere. We should link
to this whenever we mention pip so we don't duplicate information.
Since I5a0e805fe04c00c5e7cf316f0ea8d432b940e560 OsProfiler can be used
with extracted placement service to trace the wsgi endpoint. This patch
adds documentations to help using the OsProfiler.
This commit is a grab-bag of tweaks and cleanups noticed while working
in the neighborhood on something unrelated.
- Add a descriptive comment to the ResourceProviderNotFound exception.
This is a marker exception used for inter-method communication.
- Add and enhance debug logs in the in_tree$S filter code path.
- Correct a SQL comment in get_providers_with_resource (missed when the
code was tweaked).
- Removes a TODO about an optimization that became obsolete when
RequestGroupSearchContext was integrated into
- Corrects the get_sharing_providers docstring s/list/set/ to reflect
- Changes a link in the provider-tree doc from the spec-in-progress to
the merged and published version.
Microversion 1.35_ adds support for the ``root_required`` query
parameter to the ``GET /allocation_candidates`` API. It accepts a
comma-delimited list of trait names, each optionally prefixed with ``!``
to indicate a forbidden trait, in the same format as the ``required``
query parameter. This restricts allocation requests in the response to
only those whose (non-sharing) tree's root resource provider satisfies
the specified trait requirements.
This is to support use cases like, "Land my VM on a host that is capable
of multi-attach," or, "Reserve my Windows-licensed hosts for special
This is a spec for several nested features which has been split
off from the original spec for nested magic  in an effort to
not delay progress on these features while 'can_split' is being
This spec describes a cluster of Placement API work to support several
interrelated use cases for Train around:
* Modeling complex trees such as NUMA layouts, multiple devices,
* Requesting affinity (in the NUMA sense) between/among the various
providers/allocations in allocation candidates against such layouts.
* Describing granular groups more richly to facilitate the above.
* Requesting candidates based on traits/aggregates that are not
necessarily associated with resources.
In particular, it describes the new GET /allocation_candidates
* arbitrary group suffixes
* same_subtree query parameter
* resourceless request groups
* root_required, root_member_of
Co-Authored-By: Eric Fried <firstname.lastname@example.org>
This is the code used to run placement with the wsgi
profiling described in a blog post . It has proven
useful enough that we may wish to include it in the
released code. It is added in a way that is off by
default and makes no changes to requirements.
Brief docs are included in testing.rst. They are
brief because it's assumed that someone who wants to
do this already mostly knows what they want to do and
merely needs the specifics on how to do it in this
To support QoS minimum bandwidth policy during server scheduling
Neutron needs to know which resource provider provides the bandwidth
resource for each port in the server create request.