103 Commits

Author SHA1 Message Date
Matt Riedemann
8856009445 Add docs on what not to include in notifications
Based on bug 1823104 it's clear we should have some
explicit wording in the notification reference docs
about what not to include in versioned notification
payloads, so this change attempts to start that with
the most obvious thing - don't expose access credentials
to the nova deployment.

This also adds a reminder to think about what is being
added / mirrored from internal objects and determine if
consumers really need it and if they aren't asking, opt
to not including it until requested.

Change-Id: I326aa39d963091282a5d0b70ba222abfe8ccfdac
Related-Bug: #1823104
2019-04-04 10:20:32 -04:00
Zuul
b2a149d95e Merge "Remove "Fixing the Scheduler DB model" from schedule evolution doc" 2019-03-20 03:56:22 +00:00
Lance Bragstad
5408d8d9b8 Give the policy vision document a facelift
This document had a bunch of great content, but some of it has been
addressed and other initiatives have changed the content or approach.
This commit attempts to refresh this documentation so that developers
can continue to use it to improve policy enforcement.

Change-Id: Iac7a2157d625524932b94a5564723b440efd7344
2019-03-19 18:47:16 +00:00
Zuul
a295324876 Merge "Clarify policy shortcomings in policy enforcement doc" 2019-03-19 18:14:23 +00:00
Zuul
b459c58a5b Merge "Remove additional policy configuration details from policy doc" 2019-03-19 18:14:17 +00:00
Zuul
f58f73978e Merge "Remove stale aggregates notes from scheduler evolution doc" 2019-03-19 07:56:25 +00:00
Lance Bragstad
c8b02af65a Clarify policy shortcomings in policy enforcement doc
This commit updates the list of issues with policy enforcement and
describe some of the benefits for operators and developers if we fix
these issues.

Change-Id: Ie5ba2375fd32611aca360765af01c1ba6432b45e
2019-03-18 23:50:01 +00:00
Lance Bragstad
5d38069f66 Remove additional policy configuration details from policy doc
This is removing additional details that were originally reviewed in:

  I263b2f72037a588623958baccacf78fb6a6be05d

The policy and docs in code work that nova completed in Newton.

Change-Id: I66105fa90036db50249b62fc34442b667a5ee1db
2019-03-18 23:49:33 +00:00
Lance Bragstad
0f1b2e3a63 Remove obsolete policy configuration details from docs
The policy-enforcement document was written prior to any of the
policy-in-code or policy documentation efforts took place. This
commit updates the developer reference for policy to remove these
details since they have already been implemented.

Subsequent patches will update details of this document by taking into
account the recent keystone and oslo changes that help fix the
original issues described in this document.

Change-Id: I263b2f72037a588623958baccacf78fb6a6be05d
2019-03-18 13:53:14 +00:00
Matt Riedemann
0c72e63948 Remove "Fixing the Scheduler DB model" from schedule evolution doc
Blueprint detach-service-from-computenode in Kilo decoupled the
compute node and services concepts so this section is no longer
relevant and can be removed from the doc - it's no longer evolving.

Change-Id: Ibba2aa83b0afe2be05415b69a1ff8ae86866b860
Related-Bug: #1820283
2019-03-15 11:44:06 -04:00
Matt Riedemann
18c40cacc1 Remove stale aggregates notes from scheduler evolution doc
Since I901184cb1a4b6eb0d6fa6363bc6ffbcaa0c9d21d in Kilo the
aggregates information about a HostState object (which is a
wrapper over a ComputeNode) is cached in the scheduler, so the
comments in the scheduler evolution doc about not accessing the
aggregates table in the DB from filters/weighers and such is
extremely out of date and should just be removed.

Change-Id: Ibcbad227813d3b37b4e314eddbf3bae6e85652ea
Related-Bug: #1820283
2019-03-15 11:39:33 -04:00
Matt Riedemann
0a44d3ae0a Trivial typo fix for REST API in policy enforcement docs
Change-Id: If17a910f8a891ce93491d931c95f65d9fd9529e5
2019-03-15 08:33:12 -04:00
Zuul
c756e868b6 Merge "Remove cells v1 (for the most part) from the docs" 2019-03-08 01:29:10 +00:00
Hesam Chobanlou
9db41c5ee0 docs: ComputeDriver.update_provider_tree in nova
This change is an update to the nova reference documentation to reflect
changes to the ComputeDriver.update_provider_tree method in nova drivers.

Change-Id: Ifae98d888069477748ade7ef5e0a5cde5c88ffc2
Closes-Bug: #1800657
2019-02-14 00:17:18 +00:00
Matt Riedemann
bc5ef2ff06 Remove cells v1 (for the most part) from the docs
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
2019-02-13 13:59:09 -05:00
Artom Lifshitz
50b9d28e7d Doc: rebuild can result in SHUTOFF VM state
Rebuilding a SHUTOFF instance keeps it in SHUTOFF [1]. The doc
incorrectly states that rebuilding always results in an ACTIVE state.
This patch corrects this.

[1] https://github.com/openstack/nova/blob/stable/rocky/nova/compute/manager.py#L3271-L3278

Change-Id: I1af725ec0d6db861e5aaac6f3338c2276e2dad5f
2019-01-10 12:03:17 -05:00
Matt Riedemann
ca279c68a5 Provide allocation_ratio/reserved amounts from update_provider_tree()
The purpose of the RT._normalize_inventory_from_cn_obj method is
to set allocation_ratio and reserved amounts on standard resource
class inventory records that get sent to placement if the virt driver
did not specifically set a ratio or reserved value (which none but
the ironic driver do).

If the allocation_ratio or reserved amount is in the inventory
data dict from the virt driver, then the normalize method ignores
it and lets the virt driver take priority.

However, with change I6a706ec5966cdc85f97223617662fe15d3e6dc08,
any virt driver that implements the update_provider_tree() interface
is storing the inventory data on the ProviderTree object which gets
cached and re-used, meaning once allocation_ratio/reserved is set
from RT._normalize_inventory_from_cn_obj, it doesn't get unset and
the normalize method always assumes the driver provided a value which
should not be changed, even if the configuration value changes.

We can make the config option changes take effect by changing
the semantics between _normalize_inventory_from_cn_obj and
drivers that implement the update_provider_tree interface, like
for the libvirt driver. Effectively with this change, when a driver
implements update_provider_tree(), they now control setting the
allocation_ratio and reserved resource amounts for inventory they
report. The libvirt driver will use the same configuration option
values that _normalize_inventory_from_cn_obj used. The only difference
is in update_provider_tree we don't have the ComputeNode facade to
get the "real" default values when the allocation_ratio is 0.0, so
we handle that like "CONF.cpu_allocation_ratio or 16.0". Eventually
that will get cleaned up with blueprint initial-allocation-ratios.

Change-Id: I72c83a95dabd581998470edb9543079acb6536a5
Closes-Bug: #1799727
2018-10-29 12:27:31 -04:00
Matt Riedemann
2a25a13ea9 Add some more docs for upgrade checkers
This adds a few more things to the upgrade checks
reference docs after getting questions about it
during the Stein release goal implementation from
other project teams:

1. Notes the high level set of steps for upgrading
   nova in grenade and where nova-status fits into
   that sequence.

2. Links to the oslo.upgradecheck library which
   didn't exist when the original document was
   written.

3. Adds a FAQs section with Q&A for several things
   that have come up during the Stein release goal.

Change-Id: I990e5dbe563fa342f7481c3720445b924447ad54
Story: 2003657
2018-10-15 15:37:11 +00:00
Zuul
a55c189b71 Merge "Add contributor guide for upgrade status checks" 2018-09-20 21:51:01 +00:00
Matt Riedemann
7c3c3b9863 Add contributor guide for upgrade status checks
This adds some background, guidelines and structural
notes on writing nova-status upgrade checks.

This is intentionally written with some potentially
redundant information or nova developers as it's
also meant to be consumed outside nova as part of the
community-wide "upgrade-checkers" goal for Stein [1].

Story: 2003570

[1] https://governance.openstack.org/tc/goals/stein/upgrade-checkers.html

Change-Id: I340b25edeab3ac19c5d0bedfc69acd037d57bdd2
2018-09-19 18:50:25 +00:00
Matt Riedemann
579e0cfd57 Document differences and similaries between extra specs and hints
Scheduler hints are not really documented very well at all except
for being mentioned per scheduler filter in the admin configuration
guide, nor are they documented within relation to flavor extra
specs which are both used for impacting scheduling decisions and
are choices that a deployer has to make based on how they configure
their cloud.

This change adds a document about scheduler hints and how they are
similar to and different from flavor extra specs, including end
user discoverability and interoperability, and thoughts on which
should be used if writing a custom scheduler filter.

The TODO in the API guide is also resolved by linking to this
document.

Change-Id: Ib1f35baacf59efafb9e4bccfcc4f0025d99ad5b2
2018-08-29 19:09:11 -04:00
Chen
66c097a979 Revisons on notifications doc
1 typo fixes
2 use :oslo.config:option: elements for nova conf options
3 change '`' to '``' where applicable

Change-Id: Icfebf894185fc83f5fa77e8e10a42ba9dbb37755
2018-08-15 23:40:41 +08:00
zhufl
fbc86f8844 Fix none-ascii char in doc
There exist some none-ascii chars in doc, which may cause trouble
in displaying.

Change-Id: I1ebf83fb4e8cc853fd7f3065ecf420a064c9983f
2018-08-07 00:13:00 +00:00
Stephen Finucane
dd1a416bc9 doc: Start using openstackdoctheme's extlink extension
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
2018-05-03 14:34:47 +01:00
Matt Riedemann
11528966ba Document how to disable notifications
This adds information to the "notification_format" config
option help and notifications docs on how to disable notifications.

While updating the config option help text, a stale reference
to Pike is removed.

Change-Id: I736025a0a88fc969831558805687b642da8cd365
Closes-Bug: #1761405
2018-04-16 14:12:12 -04:00
Eric Fried
f9e13bcfed update_provider_tree devref and docstring updates
Design changes [1] from the Dublin PTG prompted some rewording of the
docstring for ComputeDriver.update_provider_tree.  And to avoid that
docstring becoming too enormous, relevant chunks of the spec [2] are
copied to a new devref document which is linked from that docstring.

[1] https://review.openstack.org/#/c/552122/
[2] http://specs.openstack.org/openstack/nova-specs/specs/rocky/approved/update-provider-tree.html

Change-Id: I06504aa2a3fe6d39ecc1e681de43be8fee9e06f6
blueprint: update-provider-tree
2018-04-05 09:09:26 -05:00
Matt Riedemann
94ca0b9023 Add a note about versioned notification samples being per-release
The example versioned notifications don't have any indication of
which release they are available in, and since people can link to
the 'latest' docs, like in I51d0deffc4f42ff2722a8d21aa6b8c8008c62723,
it's important to note that the samples in the latest docs might not
be in the version of nova one is actually using, e.g. ocata or pike.

So this adds a note that people should be aware of that before
relying on some versioned notification.

Change-Id: I2f7db424f0938667895b51f45ea60862a32e22c1
2017-11-15 20:42:06 +00:00
Balazs Gibizer
0d4c3cc65b Remove dead code of api.fault notification sending
Based on the description of the notify_on_api_faults config option [1]
and the code that uses it [2] nova sends and api.fault notification
if the nova-api service encounters an unhandle exception.
There is a FaultWrapper class [3] added to the  pipeline of the REST
request which catches every exception and calls the notification sending.

Based on some debugging in devstack this FaultWrapper never catches any
exception. Every REST API method is decorated with expected_errors
decorator [5] which as a last resort translate the unexpected exception
to HTTPInternalServerError. In the wsgi stack the actual REST api call is
guarded with ResourceExceptionHandler context manager [7] which translates
HTTPException to a Fault [8]. Then Fault is catched and translated to
the REST response [7]. This way the exception never propagates back to
the FaultWrapper and therefore the api.fault notification is never emitted.

Based on the git history of the expected_errors decorator this notification
was never emitted for v2.1 API and as the v2.0 API now supported with the
same codebase than v2.1 it is not emitted for v2.0 calls either. As nobody
reported a bug I assume that nobody tried to use this notification for a very
long time. Therefore instead of fixing this bug this patch propses to remove
the dead code.

See a bit more detailed description on the ML [9].

[1] 0aeaa2bce8/nova/conf/notifications.py (L49)
[2] 0aeaa2bce8/nova/notifications/base.py (L84)
[3] 0aeaa2bce8/nova/api/openstack/__init__.py (L78)
[5] 0aeaa2bce8/nova/api/openstack/extensions.py (L325)
[7] 0aeaa2bce8/nova/api/openstack/wsgi.py (L637)
[8] 0aeaa2bce8/nova/api/openstack/wsgi.py (L418)
[9] http://lists.openstack.org/pipermail/openstack-dev/2017-June/118639.html

Change-Id: I608b6ebdc69d31eb2a11ac6479fa4f2e8c20f7d1
Closes-Bug: #1699115
2017-10-09 17:29:40 +02:00
Eric Fried
6e2d001597 _rollback_live_migration in live-migration seqdiag
Add the _rollback_live_migration call on the source as the first thing
that happens on failed driver.live_migration.

Change-Id: I5db474a072ad12d48f496dcc26c99ea73c90cb66
2017-09-27 09:16:08 -05:00
Eric Fried
f839a97e0f Live Migration sequence diagram
Based on mriedem's hand-drawn version [1] (but not as pretty).

[1] https://photos.google.com/share/AF1QipNpWVQKU8GK4_9wxVbiRJUqJnMzqPcBh6DvjVyBPIjjmi6ZU8r9TleQNo6pV1t9SA?key=NUl3OUFGYkRFTE8tMHhSX0lfc0Y1eEdoeHo4SUhn

Co-Authored-By: Matt Riedemann <mriedem.os@gmail.com>

Change-Id: I63046079cd3135b4b19c0c6745075f090d04e396
2017-09-25 16:19:44 +00:00
Jenkins
b9a6ceb429 Merge "Remove qpid description in doc" 2017-09-06 14:44:12 +00:00
Jenkins
fa1ac7d965 Merge "explain payload inheritance in notification devref" 2017-09-06 13:29:59 +00:00
Jenkins
1c31b0ef3d Merge "Enhance doc for nova services" 2017-09-06 13:25:26 +00:00
jichenjc
1f11e61068 Remove qpid description in doc
from commit
925eb734a9d3cb46bb89a89ec1a78281d2d7afe9
it says qpid is removed so nova should not guide user to use qpid.

Change-Id: Idf745ec5ccc08a3bab55c3e4394e4a4da900f56d
2017-09-03 05:56:48 +00:00
Matt Riedemann
beac1529fd doc: link to versioned notification samples from main index
Notifications are essentially another API for end users, but
it can be hard to find the list of existing notifications or
their samples which are buried deep down via contributors >
technical reference deep dive > notitfications. If I'm an
end user, I'd like to just see them in the same set of links
on the main page as the API, under the "For End Users" section.

Change-Id: If3ca21b080d06a291ed27c9bcd84a566164c3b70
2017-09-01 14:10:14 -04:00
jichenjc
73b6598d41 Enhance doc for nova services
make some modifications to nova db reference and add some
basic information about some functions such as nova.service.start

Change-Id: I70c1a5eac91ab61ecd4ebc1c8ed95e4e4ba6b9fc
2017-08-31 08:30:48 +08:00
Matt Riedemann
30fad527b2 Updates to scheduling workflow doc
There are a few updates here:

1. Fix the size of one of the existing boxes to fit the text.
2. Add a note at the top that anything about alternatives is
   future work since that didn't merge in Pike.
3. Add a box to note the call from scheduler to placement to
   make the "claim".

Change-Id: I8b6468766f4924d009b2567fe71c2f5d2733a6e3
2017-08-28 18:34:16 -04:00
Eric Fried
dfd4e1506b Add formatting to scheduling activity diagram
Add explicit box sizes to ensure all text is visible in the cells of the
activity diagram SVG in the Scheduling doc.

Change-Id: Ife4d72cbd2b877e948ac4aa4fe2fa3efc1e69e9d
2017-08-24 10:28:35 -05:00
Stephen Finucane
002ca8c7f4 docs: Document the scheduler workflow
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
2017-08-24 15:18:11 +00:00
Jenkins
c7153048f3 Merge "Clean up *most* ec2 / euca2ools references" 2017-08-16 19:55:12 +00:00
Jenkins
33f3614135 Merge "doc: address review comments in stable-api guide updates" 2017-08-14 08:02:09 +00:00
Jenkins
f401d18a3d Merge "Improve stable-api doc with current API state" 2017-08-10 22:01:02 +00:00
Matt Riedemann
430af62aa3 doc: address review comments in stable-api guide updates
This addresses review comments made in change
I6522100a78241400b1ea059a39a32c259fe6ab90 which
updated the stable API docs.

Change-Id: Ib0ffe3e9702fd39914b2025096667e699bc432a0
2017-08-10 17:11:50 -04:00
Sean Dague
7e693e9c5c Clean up *most* ec2 / euca2ools references
The ec2 / euca2ools command references definitely don't work any more,
this deletes most of them. The exception is the policy reference doc
which is over a year out of date, and needs more then surgical removal
of ec2 from it.

Change-Id: I963170f99037d5ed085e8c676ab55750c7f6372e
2017-08-09 11:20:12 -04:00
ghanshyam
a03c667109 Improve stable-api doc with current API state
extensions, stevedore and extensions config options are gone
and plain router is introduced in Pike.

Also this documents was little bit confusing about current and
old state of APIs.

This commit makes it more clear and reflect the current API state
and also describe the evolution of APIs.

Change-Id: I6522100a78241400b1ea059a39a32c259fe6ab90
2017-08-09 14:13:17 +00:00
Sean Dague
b9efc9d641 Create reference subpage
In an attempt to make the main navigation sidebar not be visual mud
(and really confusing) create a reference sub page that explains all
the references.

Part of bp: doc-migration

Change-Id: I005fc24e49487631d7fe73cb498c61619bcaac9d
2017-08-08 12:28:50 +00:00
Stephen Finucane
24cdb620f9 doc: Make use of definition lists, literals
Part of bp: doc-migration

Change-Id: I270c29fa9d7f02ccc4437f05a86edb79a3a373ba
2017-08-03 14:42:34 +01:00
Sean Dague
a87afe2fc2 reflow rpc doc to 80 columns
And add some additional horizontal white space to make it easier to
understand different long bullets are different.

Part of bp: doc-migration

Change-Id: I36cd7513fa5d482b6cd85a062eace21704c49f85
2017-08-03 14:28:48 +01:00
Sean Dague
ea669d3488 fix list rendering in policy-enforcement
Part of bp: doc-migration

Change-Id: Ia0355c14fba16416d0d6068d2478377dccfa2ed9
2017-08-03 08:10:16 -04:00
Sean Dague
dafd133ab8 fix list rendering in rpc doc
list bullets have to be exactly 2 spaces indented from the parent, and
the top level is left justified, otherwise we get lots of <blockquote>
html tags inserted.

Part of bp: doc-migration

Change-Id: Ie8b311ca286601a47475b33ef80da272efc9be31
2017-08-03 07:50:27 -04:00