Drop source node allocations if finish_resize fails
By the time finish_resize runs on the dest host, the instance
host/node values are already pointing at the dest (they are
set by resize_instance on the source compute before casting to
finish_resize on the dest). If finish_resize fails, the instance
is essentially stuck on the dest host so rather than revert the
allocations (which will drop the new flavor allocations against
the dest host where the instance now lives) we should just drop
the old flavor allocations on the source node resource provider,
which is what this change does.
The functional regression recreate test is updated to show this
working.
NOTE(mriedem): The functional test conflicts are due to not having
change If6aa37d9b6b48791e070799ab026c816fda4441c in Rocky.
The code fix is also different because we don't have change
I0851e2d54a1fdc82fe3291fb7e286e790f121e92 in Rocky and cannot use
the _delete_allocation_after_move method as documented inline.
This also means we have to deal with migration-based and legacy
tracked allocations (where the source and dest node allocations
are both on the instance consumer). As such, similar logic to
_delete_allocation_after_move is used to try and delete the
migration-based allocations first and failing that, attempt
to cleanup the source node allocations the legacy way by removing
them from the "doubled up" allocations created by the scheduler.
Since this is new logic in the backport, a functional test is
added to cover the legacy cleanup flow.
Change-Id: I52c8d038118c858004e17e71b2fba9e9e2714815
Closes-Bug: #1825537
(cherry picked from commit ea297d6ffba81c5dc982afe6519de09ff3744cad)
(cherry picked from commit e6c6178d22db43959103da1400017fa49b18f514)
Reviewed: https:/ /review. opendev. org/669393 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=cbf6a46d8fc d3236bff44439c8 d143a77167dfe2
Committed: https:/
Submitter: Zuul
Branch: stable/rocky
commit cbf6a46d8fcd323 6bff44439c8d143 a77167dfe2
Author: Matt Riedemann <email address hidden>
Date: Fri Apr 19 12:28:34 2019 -0400
Drop source node allocations if finish_resize fails
By the time finish_resize runs on the dest host, the instance
host/node values are already pointing at the dest (they are
set by resize_instance on the source compute before casting to
finish_resize on the dest). If finish_resize fails, the instance
is essentially stuck on the dest host so rather than revert the
allocations (which will drop the new flavor allocations against
the dest host where the instance now lives) we should just drop
the old flavor allocations on the source node resource provider,
which is what this change does.
The functional regression recreate test is updated to show this
working.
Conflicts:
nova/ tests/functiona l/regressions/ test_bug_ 1825537. py
nova/ tests/functiona l/test_ servers. py
NOTE(mriedem): The functional test conflicts are due to not having 91e070799ab026c 816fda4441c in Rocky. 1fdc82fe3291fb7 e286e790f121e92 in Rocky and cannot use allocation_ after_move method as documented inline. allocation_ after_move is used to try and delete the
change If6aa37d9b6b487
The code fix is also different because we don't have change
I0851e2d54a
the _delete_
This also means we have to deal with migration-based and legacy
tracked allocations (where the source and dest node allocations
are both on the instance consumer). As such, similar logic to
_delete_
migration-based allocations first and failing that, attempt
to cleanup the source node allocations the legacy way by removing
them from the "doubled up" allocations created by the scheduler.
Since this is new logic in the backport, a functional test is
added to cover the legacy cleanup flow.
Change-Id: I52c8d038118c85 8004e17e71b2fba 9e9e2714815 dc982afe6519de0 9ff3744cad) 59103da1400017f a49b18f514)
Closes-Bug: #1825537
(cherry picked from commit ea297d6ffba81c5
(cherry picked from commit e6c6178d22db439