Comment 8 for bug 1850694

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

Reviewed: https://review.opendev.org/692630
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=8ee59604dcd9f770286f54e3a39c80f54413c358
Submitter: Zuul
Branch: stable/stein

commit 8ee59604dcd9f770286f54e3a39c80f54413c358
Author: Artom Lifshitz <email address hidden>
Date: Wed Oct 30 14:03:49 2019 -0400

    Avoid error 500 on shelve task_state race

    When shelving a server and saving its new SHELVING task state, we
    expect the current task state to be None and do not handle any
    UnexpectedTaskStateError exceptions that the database layer may throw
    at us. In those cases, we return an error 500 to the user, when in
    actuality an error 409 conflict would be more appropriate. This
    patch makes the API layer handle UnexpectedTaskStateError exceptions
    and return a 409 to the user.

    NOTE(artom) Conflicts:
     * nova/api/openstack/compute/shelve.py because
       InstanceUnknownCell stopped being handled as of
       95dc5d0ab558604df7d8ef31eba8f9efaee9c474 in train
     * nova/tests/unit/api/openstack/compute/test_shelve.py due to the
       vm_states import that was present in train as of
       27b6c18c666389ee68935f28cf340b7673879d6f but is missing from stein.

    Closes-bug: 1850694
    Change-Id: Ie0b421cd5d3a5781c1dd09fab4ed013ece0f939d
    (cherry picked from commit a423d8b27785623550f401a200b68ca926c0a119)
    (cherry picked from commit 32dbd2f585ef1902478170f3a1153b1f71e81db3)