Comment 9 for bug 1361180

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

Reviewed: https://review.openstack.org/138308
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=c5411d22f0d1da0cb15f5d7c8511a4caec53b265
Submitter: Jenkins
Branch: stable/icehouse

commit c5411d22f0d1da0cb15f5d7c8511a4caec53b265
Author: Dheeraj Gupta <email address hidden>
Date: Tue Oct 7 09:18:27 2014 +0000

    Extends use of ServiceProxy to more methods in HostAPI in cells

    Cells prepend full cell path to the service ID before returning any
    service related info. This means service ID is non numeric and can't
    be cast into Service objects. In cells, service_get_all method
    in HostAPI (which is used to display list of services) strips out
    the cell path from received IDs, creates Service objects using
    remaining numerical ID and uses a ServiceProxy to associate cell paths
    Service objects.
    However, other service related methods do not do so. They include:
     - service_update (Used for enabling/disabling services)
     - service_get_all_by_host (Used for evacuation)
    These functions try to cast received service info (with alphanumeric
    service IDs) into Service objects and fail with a ValueError.
    This leads to API cell throwing Error 500 for service-enable,
    service-disable and evacuate.
    This patch extends the ServiceProxy usage to both these methods. It
    also changes the corresponding HostAPI tests.

    Note: The required unit-tests are manually added to the below path,
    as new path for unit-tests is not present in stable/icehouse release.
    nova/tests/compute/test_host_api.py

    Conflicts:
            nova/compute/cells_api.py
            nova/tests/unit/compute/test_host_api.py

    Closes-Bug: 1361180
    Change-Id: Iff2707602d5fabfbe8438150b5ad74b3c31bb011
    (cherry picked from commit fcd24c6774af0add2bf20c604232e4db9747da7d)