Comment 8 for bug 1735430

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

Reviewed: https://review.openstack.org/525309
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=44912b5fefd94d3cbff1e308fecb0589e7928932
Submitter: Zuul
Branch: stable/ocata

commit 44912b5fefd94d3cbff1e308fecb0589e7928932
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.

    Closes-Bug: #1735430
    (cherry picked from commit 112cd9cd1f31e091920e2f55fb213f78152dfd37)

    Conflicts:
     nova/scheduler/client/report.py
            - Log translation removal
            - ProviderTree integration
     nova/tests/unit/scheduler/client/test_report.py
            - ksa Adapter conversion
     nova/tests/functional/test_list_servers_ip_filter.py
            - Placement fixture needs to start before compute service

    (cherry picked from commit 20531dbf89c77b6c63ad43285ccde20f176b6b23)

    Conflicts:
      No 2.53 microversion in Ocata:
     doc/api_samples/os-hypervisors/v2.53/hypervisors-detail-resp.json
     nova/tests/functional/api_sample_tests/api_samples/os-hypervisors/v2.53/hypervisors-detail-resp.json.tpl
     nova/tests/functional/test_list_servers_ip_filter.py
     nova/tests/functional/api_sample_tests/test_hypervisors.py
      Return type changed, placement request ID not yet in logs:
     nova/scheduler/client/report.py
     nova/tests/unit/scheduler/client/test_report.py

    Change-Id: I0c4ca6a81f213277fe7219cb905a805712f81e36