Comment 19 for bug 1819963

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (stable/rocky)

Reviewed: https://review.openstack.org/648410
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=1342cd75e9a091d28bec857f44f833ab5a7d1b96
Submitter: Zuul
Branch: stable/rocky

commit 1342cd75e9a091d28bec857f44f833ab5a7d1b96
Author: Matt Riedemann <email address hidden>
Date: Wed Mar 13 16:20:47 2019 -0400

    Update instance.availability_zone on revertResize

    When resizing a server that was not created in an explicit
    zone, the scheduler can pick a host in another zone and
    conductor will update the instance.availability_zone value
    for the new dest host zone.

    The problem is when reverting the resize, the server goes
    back to the original source host/zone but the
    instance.availability_zone value in the database is not
    updated which can lead to incorrect results when listing
    servers and filtering by zone.

    This fixes the bug by updating the instance.availability_zone
    value in the API (where we have access to the aggregates
    table in the API DB) before casting to nova-compute to
    complete the revert. As noted in the comment within, this
    is not fail-safe in case the revert fails before the
    instance.host is updated in finish_revert_resize, but we
    don't have a lot of great backportable options here that
    don't involve "up-calls" from the compute to the API DB.

    Conflicts:
          nova/compute/api.py
          nova/tests/unit/compute/test_compute_api.py

    NOTE(mriedem): The conflict is due to not having change
    I34ffaf285718059b55f90e812b57f1e11d566c6f in Rocky.

    Change-Id: I8dc862b90d398b693b259abd3583616d07d8d206
    Closes-Bug: #1819963
    (cherry picked from commit 40f6672f53794b563f4c7e27ede7b59a1d63c14a)
    (cherry picked from commit 26e59912838b145b627aa247c45b0b19393466c0)