Commit Graph

55443 Commits

Author SHA1 Message Date
Zuul f57beba5ba Merge "docs: Correct 'nova-manage db sync' documentation" 2019-09-27 09:28:34 +00:00
Zuul 16b85a7ade Merge "docs: Note use of 'nova-manage db sync --config-file'" 2019-09-27 09:18:56 +00:00
Zuul 09077c20fd Merge "Reset forced_destination before migration at a proper time" 2019-09-27 00:07:37 +00:00
Zuul 52c399b6ae Merge "Functional reproduction for bug 1845291" 2019-09-26 23:31:49 +00:00
Balazs Gibizer 64b99bd853 Reset forced_destination before migration at a proper time
Resetting was in place but it was done after the retry filter is
populated in the MigrationTask by the populate_retry call. This
patch moves the reset code before the call to populate_retry as
to allow retries.

Change-Id: I8290e890a36cf5a8f409ab8a50e7c72f7ae15025
Closed-Bug: #1845291
2019-09-26 15:59:16 +00:00
Balazs Gibizer 167e593ed5 Functional reproduction for bug 1845291
Nova does not try to re-schedule a migration if the original boot was
done with --availability-zone <az:host> or <az::node>.

Related-Bug #1845291

Change-Id: Id78627c5c08090de6220249a5f44d26bf32724af
2019-09-26 15:58:39 +00:00
Zuul 207d2c2253 Merge "Add a prelude for the Train release" 2019-09-26 11:28:00 +00:00
Zuul e9872e83a2 Merge "doc: attaching virtual persistent memory to guests" 2019-09-26 11:27:53 +00:00
Zuul bd6a3931f1 Merge "Correct link to placement upgrade notes" 2019-09-25 23:11:37 +00:00
Zuul b2235e078e Merge "Move HostNameWeigher to a common fixture" 2019-09-25 23:11:26 +00:00
Zuul 518aa008b9 Merge "docs: Update CPU topologies guide to reflect the new PCPU world" 2019-09-25 23:11:15 +00:00
Zuul 8e99edbcf1 Merge "docs: Clarify everything CPU pinning" 2019-09-25 23:11:09 +00:00
Zuul 8622632a94 Merge "Ignore warning from sqlalchemy-migrate" 2019-09-25 23:11:02 +00:00
Zuul cbed49544d Merge "Ignore sqla-migrate inspect.getargspec deprecation warnings on py36" 2019-09-25 23:10:56 +00:00
LuyaoZhong 7ed5d81a36 doc: attaching virtual persistent memory to guests
Add a document for virtual persistent memory

Change-Id: Ieb8040cd51d322b920ba5525322004c76545b494
Partially-Implements: blueprint virtual-persistent-memory
2019-09-25 16:03:51 -05:00
Zuul 10c2e035da Merge "Add functional tests for [cinder]/cross_az_attach=False" 2019-09-25 18:55:15 +00:00
Zuul f96d0ac980 Merge "Log error when volume validation fails during boot from volume" 2019-09-25 18:55:09 +00:00
Stephen Finucane d0ca30b80a Ignore warning from sqlalchemy-migrate
This has been fixed but not released. Another warning is updated since
modules don't have .py extensions.

Change-Id: Iaa93b9743214300597650040c1cd34699f12ab3f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Related-Bug: #1813147
2019-09-25 13:08:01 -04:00
Stephen Finucane 79ee80d159 Ignore sqla-migrate inspect.getargspec deprecation warnings on py36
The 'message' argument is a regex so you need to escape brackets and the
likes. Strange that this worked on py27.

This was coincidentally fixed by Ib9f735216773224f91ac7f49fbe2eee119670872
in Train but this change is backportable while that one is not.

Change-Id: Ia1f0fa6a46bdd0a87d40721937355b2cc887f1c9
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Related-Bug: #1813147
2019-09-25 13:05:28 -04:00
Zuul 9ae3b0c8ed Merge "docs: Scrub available quotas" 2019-09-25 16:36:10 +00:00
Stephen Finucane 50e60401ed docs: Update CPU topologies guide to reflect the new PCPU world
We don't need to do a whole lot here. The key things to note are that
some host level configuration is now necessary, that the 'isolate' CPU
thread policy behaves slightly differently, and that you can request
'PCPU' inventory explicitly instead of using 'hw:cpu_policy=dedicated'
or the image metadata equivalent.

Part of blueprint cpu-resources

Change-Id: Ic1f98ea8a7f6bdc86f2d6b4734774fa380f8cc10
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-09-25 14:30:23 +01:00
Stephen Finucane ca7c595729 docs: Clarify everything CPU pinning
The documentation for emulator threads leaves a lot to be desired, while
the hierarchy of the CPU thread pinning doesn't emphasise the dependency
of this feature on CPU pinning. Resolve both by tweaking or expanding
the wording of key paragraphs and modifying the header levels to nest
the CPU thread pinning and emulator thread pinning docs under the CPU
pinning docs.

Change-Id: Ife32a53b80b770e008dbe2091fbb88e6596d238b
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-09-25 14:29:45 +01:00
Sylvain Bauza 7c25caa418 Add a prelude for the Train release
Based on both etherpad [1] and cycle highlights [2]

[1] https://etherpad.openstack.org/p/nova-train-prelude
[2] https://releases.openstack.org/train/highlights.html#nova-compute-service

Depends-On: https://review.opendev.org/683485/
Depends-On: https://review.opendev.org/680300/

Change-Id: I078b8428f54ed2a8e5d55592964699933936c709
2019-09-25 09:12:08 -04:00
Zuul 627c461a62 Merge "Remove upgrade specific info from user facing exception text" 2019-09-25 10:29:20 +00:00
Chris Dent 98008e048c Correct link to placement upgrade notes
In the depends-on the upgrade notes in placement are moved to a
different URL. Because the link here in nova was to an anchor, not
a URL, a redirect on the placement side will not catch this, so
explicitly update the link.

Depends-On: https://review.opendev.org/683783
Change-Id: Ib07eacb9150bbb8b0726cfe06ae334c7a764955c
2019-09-25 10:26:44 +01:00
Balazs Gibizer 60b097a5ef Move HostNameWeigher to a common fixture
Multiple functional tests used its own copy-pasted implementation of a
weigher to make the scheduling deterministic based on host names.

This patch moves the HostNameWeigher implementation to a common place
and adds a fixtures to set up the weigher in the conf.

Change-Id: I4c23a3c4f8963c42379e7a8d63c6c1e089350eb3
2019-09-25 09:57:38 +02:00
Matt Riedemann 1024941c0d Isolate request spec handling from _cold_migrate
The compat code for the request spec in _cold_migrate is
nearly as big as the rest of the method. This moves that to
another method and also slides the image meta handling within
the first condition where it's needed and renames the 'image'
variable to 'image_meta' to stop shadowing the 'image' module
import.

Change-Id: I83e1a1eba594897f4610e1f9074a24d79443a025
2019-09-24 14:36:31 -04:00
Matt Riedemann b36c44c449 Handle legacy request spec dict in ComputeTaskManager._cold_migrate
Prior to change I4244f7dd8fe74565180f73684678027067b4506e in Stein,
conductor would pass a legacy dict request spec to compute during
cold migrate / resize and if compute rescheduled it would not pass
the request spec back to conductor, so the _cold_migrate method in
conductor would have to create a new RequestSpec from components
it had available.

As of that change, compute will send the request spec it got back
to conductor and _cold_migrate avoids the RequestSpec.from_components
call.

There are two issues here:

1. Technically if conductor RPC API is pinned to less than 1.13 the
   ComputeTaskAPI.migrate_server method will remove the request spec
   from the call to conductor. So conductor (server-side) can still
   not get a RequestSpec and need to use from_components. As a result
   the TODO in the _cold_migrate method needs to be updated since we
   require an RPC API major version bump to make request spec required.

2. Just because conductor is passing compute a RequestSpec object, if
   compute RPC API versions are pinned to less than 5.1, conductor will
   pass a legacy request spec dict to compute and compute will send that
   back to conductor, so the _cold_migrate method needs to handle getting
   a request spec that is a dict and convert it to an object. A new test
   is added for that case.

Change-Id: I188b7aa9cb220f93e69a68f0c3592b28d41ba5b6
Closes-Bug: #1843090
2019-09-24 14:36:01 -04:00
Zuul ffd4dbf817 Merge "Reject migration with QoS port from conductor if RPC pinned" 2019-09-24 18:24:17 +00:00
Matt Riedemann f212b85583 Add functional tests for [cinder]/cross_az_attach=False
This adds some simple functional tests for the API validation
behavior during server create when [cinder]/cross_az_attach=False
meaning the server being created and any volumes attached to it
must be in the same AZ.

As part of this, bug 1694844 is recreated where the server is
created without an AZ (or default_schedule_zone AZ) which results
in a 400 response because None != whatever the volume's AZ is
(which defaults to "nova" in Cinder). This is important for testing
fixes for that bug later since the API interaction code is pretty
hairy and unit tests are insufficient for validating a fix.

Change-Id: I1b724f7ad3e2f6baa9fd865a8e22d87bf909b488
Related-Bug: #1694844
2019-09-24 13:23:12 -04:00
Zuul 0ce66605e1 Merge "Add evacuate vs rebuild contributor doc" 2019-09-24 16:51:23 +00:00
Zuul eed7f0eb4a Merge "Func test for migrate reschedule with pinned compute rpc" 2019-09-24 16:51:16 +00:00
Zuul 37f4c3fa4d Merge "objects: use all_things_equal from objects.base" 2019-09-24 16:51:11 +00:00
Stephen Finucane 62ca2e7ed2 docs: Correct 'nova-manage db sync' documentation
In change I3fd9fe0317bcd1a59c366e60154b095e8df92327, we deprecated the
'--version' option in favour of a 'VERSION' positional. This was later
removed in change I7795e308497de66329f288b43ecfbf978d67ad75. Update the
docs to reflect this. 'nova-manage api_db sync' were already corrected
in change Ibc49f93b8bd51d9a050acde5ef3dc8aad91321ca and does not need
the same fix, though a minor tweak is included.

Change-Id: I2c0fb04fbc3f6d2074596894782ed3143b0c2338
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Closes-Bug: #1840807
2019-09-24 17:18:31 +01:00
Stephen Finucane de0cd7503e docs: Note use of 'nova-manage db sync --config-file'
I forget this every darn time I'm working on something that requires DB
migrations.

Change-Id: I6ca988793cf2bfc2d5938acc158fd94e61e06a92
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-09-24 17:18:27 +01:00
Balazs Gibizer 5d650753e2 Remove upgrade specific info from user facing exception text
One of the PortUpdateFailed exception usage case introduced by the
bp support-move-ops-with-qos-ports overly chatty about upgrade and
pinned RPC. This message can reach the end user during resize so the
deployment specific information is removed from the exception message
and logged instead. Also a TODO is added that the whole check can be
removed once we bump the compute RPC to 6.0

Change-Id: I37b02da02a42cab09d2efe6d1a4b88cbc8b9b0d0
2019-09-24 10:44:46 +02:00
Balazs Gibizer 4a10f8eaa7 Reject migration with QoS port from conductor if RPC pinned
The MigrationTask in the conductor already checks the service version as
old computes cannot support migration with QoS port. However it is still
possible that every compute is new but the compute RPC API is pinned to
< 5.2. In this case the migration still cannot be supported.

This patch adds an extra RPC version check to the conductor.

Change-Id: Ib4e0b9ab050a59ab5a290e6eecea01b87c3bd4c6
Closes-Bug: #1844993
2019-09-24 10:12:05 +02:00
Zuul 38c774a8e0 Merge "Add librsvg2* to bindep" 2019-09-24 02:36:21 +00:00
Zuul d1ff9bd66f Merge "Functional reproduction for bug 1844993" 2019-09-24 00:22:03 +00:00
Matt Riedemann dc0911d30c Log error when volume validation fails during boot from volume
If we get an unexpected exception during boot from volume while
validating a pre-created volume, we just raise InvalidBDMVolume
which might have a misleading error message for why validation
failed, e.g. it looks like we couldn't GET the volume but actually
it could be something in later validation that fails.

This simply logs the error at INFO level for later debugging. We
don't log at WARNING or ERROR because it could be due to some user
error and operators shouldn't have to worry about warnings/errors
in the logs for user-inflicted issues. The INFO log is useful though
in diagnosing a failure if the user doesn't understand the failure.

Change-Id: I83903593811efe43608826c8e599c8f09c313a3c
2019-09-23 17:03:16 -04:00
Zuul c246dd9010 Merge "Refactor pre-live-migration work out of _do_live_migration" 2019-09-23 20:22:04 +00:00
Zuul c174dcabb6 Merge "Add reminder to update corresponding glance docs" 2019-09-23 19:58:54 +00:00
Zuul f14ce63091 Merge "Tune up db.instance_get_all_uuids_by_hosts" 2019-09-23 19:58:43 +00:00
Zuul 0c8ca68818 Merge "Use multiple attachments in test_list_volume_attachments" 2019-09-23 19:43:40 +00:00
Zuul f7badfae30 Merge "Remove stubs from VolumeAttachmentsSample API sample test" 2019-09-23 19:43:34 +00:00
Zuul 10e950b3b5 Merge "[Trivial]Removed unused helper _extract_query_params" 2019-09-23 19:31:49 +00:00
Zuul 6fe2373964 Merge "[Trivial]Remove unused helper should_switch_to_postcopy" 2019-09-23 19:31:43 +00:00
Zuul 31e9914ce5 Merge "Get pci_devices from _list_devices" 2019-09-23 19:24:41 +00:00
Zuul 597b34cd87 Merge "Add note about needing noVNC >= v1.1.0 with using ESX" 2019-09-23 17:24:00 +00:00
Balazs Gibizer a3024b5cea Functional reproduction for bug 1844993
If the compute RPC is pinned to < 5.2 a server with QoS port cannot be
migrated. However nova not just fails the migration but also leaves the
server and the QoS port in an inconsistent state.

Change-Id: Ia8dc51d11b8ce93c372ee77f2c0b43910f992574
Related-Bug: #1844993
2019-09-23 14:33:23 +02:00