Comment 8 for bug 1763183

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

Reviewed: https://review.openstack.org/563234
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=a817b78dc44cf2cb4157531b2d92b03a4d0ca7d1
Submitter: Zuul
Branch: stable/queens

commit a817b78dc44cf2cb4157531b2d92b03a4d0ca7d1
Author: Matt Riedemann <email address hidden>
Date: Wed Apr 11 18:00:39 2018 -0400

    Block deleting compute services which are hosting instances

    This change makes "DELETE /os-services/{service_id}" fail
    with a 409 response when attempting to delete a nova-compute
    service which is still hosting instances.

    Deleting a compute service also results in deleting the
    related compute_nodes table entry for that service host.
    The compute node resource provider in placement is tied
    to the compute node via the UUID, and if we allow deleting
    the compute service and node then the resource provider for
    that node is effectively orphaned in Placement, along with
    the instances which have allocations against that resource
    provider.

    Furthermore, restarting the compute service will create a
    new service and compute_nodes record, and the compute node
    would have a new UUID and resource provider. This will
    affect scheduling for that host since Placement will be
    reporting it as having available capacity which in reality
    is not accurate.

    A release note is included for the (justified) behavior
    change in the API. A new microversion should not be required
    for this since admins should not have to opt out of broken
    behavior. Since this API did not previously expect to return
    a 409 response, the "expected_errors" decorator is updated
    and again, should not require a microversion per the
    guidelines:

    https://docs.openstack.org/nova/latest/contributor/microversions.html#when-a-microversion-is-not-needed

    Conflicts:
          nova/tests/functional/wsgi/test_services.py

    NOTE(mriedem): This is due to the rc_fields move from
    change Iea182341f9419cb514a044f76864d6bec60a3683 in Rocky.

    Change-Id: I0bd63b655ad3d3d39af8d15c781ce0a45efc8e3a
    Closes-Bug: #1763183
    (cherry picked from commit 42f62f1ed2ad76829eb9d40a8b9646a523f6381f)