Comment 3 for bug 1735430

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

Reviewed: https://review.openstack.org/524263
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=112cd9cd1f31e091920e2f55fb213f78152dfd37
Submitter: Zuul
Branch: master

commit 112cd9cd1f31e091920e2f55fb213f78152dfd37
Author: Eric Fried <email address hidden>
Date: Thu Nov 30 11:39:11 2017 -0600

    Proper error handling by _ensure_resource_provider

    Previously, if _ensure_resource_provider encountered any error from the
    placement REST API, it would (sometimes log a message and) return None.

    Furthermore, a name conflict while creating the provider was treated the
    same as a UUID conflict, which would actually result in None being
    returned.

    With this change set, the error paths that previously returned None now
    raise one of the new ResourceProviderRetrievalFailed or
    ResourceProviderCreationFailed exceptions; and the name conflict path is
    detected and treated as an error condition.

    Note: This change set only touches the SchedulerReportClient side of
    these error conditions - it makes no attempt to add error handling to
    its callers. Case in point, the API samples tests needed fixing because
    they were previously running into the name conflict error condition, but
    not noticing. As currently implemented, the new exceptions will
    percolate up to ComputeManager.update_available_resource_for_node like
    any others coming from SchedulerReportClient, where they will be logged
    and ignored.

    Change-Id: I0c4ca6a81f213277fe7219cb905a805712f81e36
    Closes-Bug: #1735430