nova/nova/tests
Matt Riedemann 37ac54a42e Delete allocations even if _confirm_resize raises
When we are confirming a resize, the guest is on the dest
host and the instance host/node values in the database
are pointing at the dest host, so the _confirm_resize method
on the source is really best effort. If something fails, we
should not leak allocations in placement for the source compute
node resource provider since the instance is not actually
consuming the source node provider resources.

This change refactors the error handling around the _confirm_resize
call so the big nesting for _error_out_instance_on_exception is
moved to confirm_resize and then a try/finally is added around
_confirm_resize so we can be sure to try and cleanup the allocations
even if _confirm_resize fails in some obscure way. If _confirm_resize
does fail, the error gets re-raised along with logging a traceback
and hint about how to correct the instance state in the DB by hard
rebooting the server on the dest host.

Conflicts:
      nova/compute/manager.py
      nova/tests/unit/compute/test_compute_mgr.py

NOTE(mriedem): The manager.py conflict is due to not having change
Ibb8c12fb2799bb5ceb9e3d72a2b86dbb4f14451e in Rocky. In addition,
since change I0851e2d54a1fdc82fe3291fb7e286e790f121e92 is not in
Rocky the _delete_allocation_after_move signature needs to be
handled a bit different in this backport. The test_compute_mgr.py
conflict and source_node addition in the setUp is due to the same
two changes.

Change-Id: I29c5f491ec20a71283190a1599e7732541de736f
Closes-Bug: #1821594
(cherry picked from commit 03a6d26691)
(cherry picked from commit 5f515060f6)
2019-04-12 17:13:54 -04:00
..
functional Merge "Fix resetting non-persistent fields when saving obj" into stable/rocky 2019-03-15 22:32:13 +00:00
live_migration/hooks Fix legacy-grenade-dsvm-neutron-multinode-live-migration 2019-02-28 15:43:57 -05:00
unit Delete allocations even if _confirm_resize raises 2019-04-12 17:13:54 -04:00
__init__.py
fixtures.py Fix race in test_volume_swap_server_with_error 2019-03-02 14:38:25 +00:00
json_ref.py Transform instance.exists notification 2018-06-05 12:51:30 +00:00
uuidsentinel.py