Commit Graph

1565 Commits

Author SHA1 Message Date
Chris Dent 6efbed5e70 Fix link in placement contributor doc
A todo in the contributor/placement.rst slipped through the review
cracks and meant a bad link to 'link to spec once it merges' is in the
docs. This fixes it with the correct link to the spec.

Change-Id: I13daf9576dcb1229409826b4c4eac28c8bb1e23f
2018-04-20 12:27:40 +01:00
Zuul e3a9efab86 Merge "Add hide_hypervisor_id flavor extra_spec" 2018-04-20 05:21:38 +00:00
Zuul d079d26444 Merge "Log a warning and add nova-status check for old API service versions" 2018-04-20 05:21:00 +00:00
Zuul b1dcfd8159 Merge "Provide framework for setting placement error codes" 2018-04-20 00:33:21 +00:00
Konstantinos Samaras-Tsakiris edf67cfda2 Add hide_hypervisor_id flavor extra_spec
Blueprint add-kvm-hidden-feature added the capability of hiding the kvm
signature from guests. However, it was implemented only through an image
property.

A major reason for this feature is to allow passed-through Nvidia GPUs
to work correctly. GPU pci-passthrough is specified on the flavor's
extra_specs, without requiring an image with special properties.
Therefore, hiding the KVM signature should also be specifiable through
the flavor's extra_specs, in order to not require a special image for
this use case.

If the new flavor extra_spec is present and set to 'true', the libvirt
driver will produce an additional element to hide kvm's signature on
the vm, in the same way as with the image property
`img_hide_hypervisor_id`.

Implements: blueprint hide-hypervisor-id-flavor-extra-spec
Closes-Bug: 1757424
Change-Id: I41c5913b4148629b448ea5fb43b7597dc067dc22
2018-04-19 22:36:26 +00:00
naichuans 9b7affcac1 xenapi: Use XAPI pool instead of aggregate pool for shared SR migration
xenapi is going to support pool-based multi-hosts OpenStack
environments, this patch is used to remove dependency to the
old aggregate-based-pools and add support to xenapi pool.
Also include unit test changes.
Updated configuring migrations document:
https://docs.openstack.org/nova/latest/admin/configuring-
migrations.html#configuring-migrations-xenserver-shared-storage
Other related documents will be updated in another patch.

Implements: blueprint live-migration-in-xapi-pool
Change-Id: I2c492c46e85c1df96aa7fdc12cdee0b1c7ba775e
2018-04-19 05:50:31 +00:00
Zuul 71ca8822ac Merge "Parse forbidden in extra_specs" 2018-04-17 20:50:15 +00:00
Zuul 147b1f1d5c Merge "doc: BFV instances and IsolatedHostsFilter" 2018-04-17 18:41:19 +00:00
Chris Dent 2c51688558 Parse forbidden in extra_specs
Accept forbidden traits in the processing of extra_specs, with the
format of:

      trait:CUSTOM_MAGIC=forbidden

This will be transformed into required=!CUSTOM_MAGIC when the traits
are assembled into a request to GET /allocation_candidates.

Implements blueprint forbidden-traits-in-nova

Change-Id: I31e609aef47d2fea03f279e4bfdd30f072d062b4
2018-04-17 18:18:43 +01:00
Sylvain Bauza 1f2715f5e2 doc: BFV instances and IsolatedHostsFilter
Since BFV instances don't have a specific image attached to them, the
filter will consider them as not having a specific image, hence not
isolated. Correcting the doc.

Change-Id: Ib235fca1365ee7a38b94600960ee3947f448c4a9
2018-04-17 14:25:07 +00: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
jichen e285070ec7 Fix doc link for api
doc link has an issue.
Trivial Fix

Change-Id: I949711ebfc51a09bbdc344fa0e242b924e66a29f
2018-04-16 11:14:16 +08:00
Chris Dent bd9f24b7aa Provide framework for setting placement error codes
The API-sig has a guideline[1] for including error codes in error
responses to help distinguish errors with the same status code
from one another. This change provides a simplest-thing-that-could-
possibly-work solution to make that go.

This solution comes about after a few different constraints and attempts:

* We would prefer to go on using the existing webob.exc exceptions, not
  make subclasses.
* We already have a special wrapper around our wsgi apps to deal with
  setting the json_error_formatter.
* Though webob allows custom Request and Response objects, it uses the
  default Response object as the parent of the HTTP exceptions.
* The Response object accepts kwargs, but only if they can be associated
  with known attributes on the class. Since we can't subclass...
* The json_error_formatter method is not passed the raw exception, but
  it does get the current WSGI environ
* The webob.exc classes take a 'comment' kwarg that is not used, but
  is also not passed to the json_error_formatter.

Therefore, when we raise an exception, we can set 'comment' to a code
and then assign that comment to a well known field in the environ and if
that environ is set in json_error_formatter, we can set 'code' in the
output.

This is done in a new microversion, 1.23. Every response gets a default
code 'placement.undefined_code' from 1.23 on. Future development will
add specific codes where required. This change adds a stub code for
inventory in use when doing a PUT to .../inventories but the name
may need improvement.

[1] http://specs.openstack.org/openstack/api-wg/guidelines/errors.html

Implements blueprint placement-api-error-handling

Change-Id: I9a833aa35d474caa35e640bbad6c436a3b16ac5e
2018-04-14 13:45:54 +01:00
Zuul 7891acf809 Merge "Marker reset option for nova-manage map_instances" 2018-04-11 17:57:04 +00:00
Zuul 8f5e90f0a1 Merge "Update the Cell filters section of the scheduler docs" 2018-04-11 11:11:20 +00:00
Zuul 964d2fb184 Merge "doc: add a link in the install guides about configuring neutron" 2018-04-11 11:10:37 +00:00
jichen a53dbc0c23 make metadata doc up to date
currently we have following output:

$ curl http://169.254.169.254/openstack
2012-08-10
2013-04-04
2013-10-17
2015-10-15
2016-06-30
2016-10-06
2017-02-22
latest

Change-Id: I6b4aed63d5c981abc9374baf929f05b26760e645
2018-04-10 09:41:22 +08:00
Matt Riedemann eaf6340847 Log a warning and add nova-status check for old API service versions
Change Ib984c30543acb3ca9cb95fb53d44d9ded0f5a5c8, which was added
in Newton when cells v2 was optional, added some transitional code
to the API for looking up an instance, which didn't rely on instance
mappings in a cell to find the instance if the minimum nova-osapi_compute
service version was from before Ocata.

People have reported this being a source of confusion when upgrading
from before Ocata, when cells v2 wasn't required, to Ocata+ where cells
v2 along with the mapping setup is required. That's because they might
have older nova-osapi_compute service version records in their 'nova'
(cell) database which makes the API think the code is older than it
actually is, and results in an InstanceNotFound error.

This change does two things:

1. Adds a warning to the compute API code in this scenario to serve
   as a breadcrumb if a deployment hits this issue.

2. A nova-status check to look for minimum nova-osapi_compute service
   versions across all cells and report the issue as a warning. It's
   not an upgrade failure since we don't know how the nova-api service
   is configured, but leave that investigation up to the deployer.

This is also written in such a way that we should be able to backport
this through to stable/ocata.

Change-Id: Ie2bc4616439352850cf29a9de7d33a06c8f7c2b8
Closes-Bug: #1759316
2018-04-09 14:43:34 -04:00
Matt Riedemann a6d9655d78 doc: add a link in the install guides about configuring neutron
It is not uncommon to triage bugs on a weekly basis where the
[neutron] auth credentials are not configured in nova.conf, which
generally leads to a 500 response in the compute API because of
the auth error.

With respect to neutron, the compute install guides really only
say to set use_neutron=True, but don't mention that configuring
the [neutron] section for auth is required. The networking service
install guide does, so it's a bit confusing why people make this
mistake in the first place, but as a reminder, this change adds
links from the compute install guide to the relevant sections
in the networking service install guides.

Change-Id: Id17457bd2770fcbebd6231919ba4002e75410089
Closes-Bug: #1761487
2018-04-06 14:46:45 -04:00
Dan Smith 104c9e6375 Clarify/correct the ordering of API and Cell database schema updates
Everyone seems to agree that the only sane ordering of these operations
is "api first, cell after." However, grenade and our own documentation
shows the api database as coming after the main one. I believe this
was added to grenade in a sort of append operation, and thus after the
main database. This was done back when usage of the API database was
still optional (for upgrades) and thus the ordering didn't matter much.
Since the process has been correct (api first) in devstack for a long
time, and since grenade runs after devstack, we haven't had any issues.
A recent change to add something to a core data structure column format
highlighted the out-of-order-ness of this.

I also believe the docs got the same append behavior when adding the
command to the list, and/or it may have been copied from grenade, which
is our in-code manifestation of the upgrade steps.

Change-Id: I19f263ed314a8b01bbb07337467392cc1c146b66
Related-Bug: #1761775
2018-04-06 08:24:33 -07:00
Zuul 996d708a03 Merge "update_provider_tree devref and docstring updates" 2018-04-05 23:27:53 +00:00
Zuul deecb7892a Merge "Update the cells FAQs and scheduler maintenance docs." 2018-04-05 23:16:22 +00:00
Zuul 0120643def Merge "Add --enable and --disable options to nova-manage update_cell" 2018-04-05 23:16:13 +00:00
Zuul 9204f91c30 Merge "Add nova-status check for ironic flavor migration" 2018-04-05 17:38:00 +00:00
Surya Seetharaman 660da1e952 Update the cells FAQs and scheduler maintenance docs.
Related to blueprint cell-disable

Change-Id: I020b78cc3ce035ff3466774d5d08198d89271117
2018-04-05 15:57:00 +00:00
Surya Seetharaman f32a2ef7d1 Update the Cell filters section of the scheduler docs
This patch adds a note to inform the users that the filters are
for cellsv1 which is deprecated.

Change-Id: Idbe5a9354088f8d49fa16794ba2028091d8c22b5
2018-04-05 17:17:40 +02: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 7eb6703521 Add nova-status check for ironic flavor migration
In Pike we started requiring that ironic instances have their
embedded flavor migrated to track the ironic node custom
resource class. This can be done either via the normal running
of the nova-compute service and ironic driver or via the
'nova-manage db ironic_flavor_migration' command.

This change adds a nova-status check to see if there are any
unmigrated ironic instances across all non-cell0 cells, and
is based mostly on the same logic within the nova-manage command
except it's multi-cell aware and doesn't use the objects.

Change-Id: Ifd22325e849db2353b1b1eedfe998e3d6a79591c
2018-04-04 17:23:06 -04:00
Surya Seetharaman cd01cbe65e Add --enable and --disable options to nova-manage update_cell
Through these new options, users can enable or disable a cell
through the CLI.

Related to blueprint cell-disable

Change-Id: I761f2e2b1f1cc2c605f7da504a8c8647d6d6a45e
2018-04-04 20:23:51 +00:00
Zuul 90cd707b31 Merge "Remove a outdated warning" 2018-04-04 18:34:19 +00:00
Zuul 2474f44b17 Merge "PowerVM Driver: Network interface attach/detach" 2018-04-04 06:49:19 +00:00
jichen 812e2c1736 Remove a outdated warning
this document is out of date since a set of changes made such as

43f91a87cb
39f6159bde
8be8d02aa7

Put those 'to be fixed in queens' make people think it should
be already been fixed due to queen release, so remove them in order
to avoid confusion and we can continue to enhance this doc.

TrivialFix

Change-Id: I12dd385f4e1f159bdb9a78a629d4095889397c09
2018-04-04 14:00:47 +08:00
Zuul 8df0fc88c4 Merge "[placement] Add to contributor docs about handler testing" 2018-04-04 01:19:12 +00:00
Zuul edb152cb15 Merge "doc: Upgrade placement first" 2018-04-03 01:47:58 +00:00
Zuul 2d33459255 Merge "Documentation for tenant isolation with placement" 2018-03-30 17:34:06 +00:00
Chris Dent d7145270c3 [placement] Add to contributor docs about handler testing
A recent IRC conversation [1] discussed that there are generally no tests
for the placement handler code (the wsgi methods that respond to each
URI and HTTP method). This change adds a paragraph to point out that
this is mostly intentional and that when they get complex it would
be a good idea to extract a method.

[1] http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2018-03-28.log.html#t2018-03-28T13:00:40

Change-Id: I09774c123068e42e6a828fc37455dc5d374486b9
2018-03-30 11:30:52 +01:00
Zuul 062b5948af Merge "Make get_allocation_candidates() honor aggregate restrictions" 2018-03-29 20:07:16 +00:00
Dan Smith a27da62d82 Documentation for tenant isolation with placement
This explains how to actually wire up placement aggregates to allow
for filtering on tenant.

Change-Id: Idb06e7562d88957a00f52cba7d0a788dbff42a28
2018-03-29 11:56:39 -07:00
esberglu ed525cc403 PowerVM Driver: Network interface attach/detach
This adds the ability to hotplug network interfaces for the powervm
virt driver.

Blueprint: powervm-network-hotplug
Change-Id: I78b94c9731c35e3291d46b9bf9f5554e21c2429e
2018-03-29 09:06:09 -04:00
Dan Smith a9e7581f00 Make get_allocation_candidates() honor aggregate restrictions
This uses the member_of query parameter to placement to ensure that the
candidates returned are within the appropriate aggregate(s) if so
specified.

Related to blueprint placement-req-filter

Change-Id: If8ac06039ac9d647efdc088fbe944938e205e941
2018-03-28 15:58:45 -07:00
Stephen Finucane b862f6ff35 tox: Make everything work with Python 3
Nothing too fancy here except that we've to work around a really ugly
side-effect of blockdiag.

Change-Id: Ibd32d30aacae65702d0ccbdb8a02b1667ec4e8ee
2018-03-28 12:57:24 +01:00
Eric Fried 7f1b338bce doc: Upgrade placement first
It has long been *recommended* that the placement service be upgraded
before nova services, but scenarios where it isn't have never really
been explored or tested.  Following (yet another) discussion on the
topic [1] it was decided that we are best served by *requiring* that
placement be updated first.  This simplifies our test/support matrix,
and the code we write to consume placement.  It also makes the operator
experience cleaner by giving them a clear and unambiguous script to
follow.

This change set rewords the upgrade document accordingly.

[1] http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2018-03-26.log.html#t2018-03-26T17:35:11

Change-Id: I97215e94efdd8c05045872fb9ba7d2089dc6efb8
2018-03-26 21:10:03 +00:00
Zuul 9c7ebf90fa Merge "Add disabled option to create_cell command" 2018-03-26 13:26:35 +00:00
Zuul 7672472998 Merge "Modify nova-manage cell_v2 list_cells to display "disabled" column" 2018-03-26 13:11:28 +00:00
Surya Seetharaman 2e491f7490 Modify nova-manage cell_v2 list_cells to display "disabled" column
This patch adds the new column disabled to the list of columns to be
displayed by the list_cells command.

Related to blueprint cell-disable

Change-Id: I96a6d5e59d33c65314fc187c0286ce3408d30bdc
2018-03-23 20:26:22 +00:00
Surya Seetharaman 9e9520a4b0 Add disabled option to create_cell command
Specifying this new option will create pre-disabled cells.

Related to blueprint cell-disable

Change-Id: I87e06eeefd48f640f42fcc5ff5a48938adc2ac22
2018-03-23 20:26:02 +00:00
Zuul 658d468df4 Merge "Remove version/date from CLI documentation" 2018-03-20 00:05:03 +00:00
Ken'ichi Ohmichi d6be2ece51 Remove version/date from CLI documentation
This patch removes the unnecessary maintenance of a date and version
from the CLI documentation.

NOTE: Cinder team also did the same removal with
      the commit Idf78bbed44f942bb6976ccf4da67c748d9283ed9

Change-Id: I0a9dd49e68f2d47c58a46b107c77975e7b2aeaf7
2018-03-19 17:03:02 +00:00
Zuul 37b4f77b5e Merge "Add --by-service to discover_hosts" 2018-03-19 05:07:53 +00:00
Zuul 15885f18c8 Merge "Make archive_deleted_rows handle a missing CONF.api_database.connection" 2018-03-18 02:16:29 +00:00