Comment 8 for bug 1774205

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

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

commit 1162902280d06eb6201738ef54ff8300f974b374
Author: Matt Riedemann <email address hidden>
Date: Wed May 30 12:07:53 2018 -0400

    Use instance project/user when creating RequestSpec during resize reschedule

    When rescheduling from a failed cold migrate / resize, the compute
    service does not pass the request spec back to conductor so we
    create one based on the in-scope variables.

    This introduces a problem for some scheduler filters like the
    AggregateMultiTenancyIsolation filter since it will create the
    RequestSpec using the project and user information from the current
    context, which for a cold migrate is the admin and might not be
    the owner of the instance (which could be in some other project).
    So the AggregateMultiTenancyIsolation filter might reject the
    request or select a host that fits an aggregate for the admin but
    not the end user.

    This fixes the problem by using the instance project/user information
    when constructing the RequestSpec which will take priority over
    the context in RequestSpec.from_components().

    Long-term we need the compute service to pass the request spec back
    to the conductor during a reschedule, but we do this first since we
    can backport it.

    NOTE(mriedem): RequestSpec.user_id was added in Rocky in commit
    6e49019fae80586c4bbb8a7281600cf6140c176a so we have to remove its
    usage in this backport.

    Change-Id: Iaaf7f68d6874fd5d6e737e7d2bc589ea4a048fee
    Closes-Bug: #1774205
    (cherry picked from commit 8c216608194c89d281e8d2b66abd1e50e2405b01)