When I called Nova V3 API 'GET v3/os-cells/capacities', an 'Unexpected API Error.' occurred.
http://logs.openstack.org/57/78157/1/check/check-tempest-dsvm-full/bcb3b6b/console.html#_2014-03-05_11_56_34_285
console.html
------------------------------------------------------------------------------------------------------------------------------------------
2014-03-05 11:56:34.283 | pythonlogging:'': {{{
2014-03-05 11:56:34.283 | 2014-03-05 11:30:18,083 Request: POST http://127.0.0.1:5000/v2.0/tokens
2014-03-05 11:56:34.283 | 2014-03-05 11:30:18,083 Request Headers: {'Content-Type': 'application/json', 'Accept': 'application/json'}
2014-03-05 11:56:34.284 | 2014-03-05 11:30:18,083 Request Body: {"auth": {"tenantName": "CellsV3Test-1270506035", "passwordCredentials": {"username": "CellsV3Test-365545871", "password": "pass"}}}
2014-03-05 11:56:34.284 | 2014-03-05 11:30:18,312 Response Status: 200
2014-03-05 11:56:34.284 | 2014-03-05 11:30:18,312 Response Headers: {'content-length': '10648', 'date': 'Wed, 05 Mar 2014 11:30:18 GMT', 'content-type': 'application/json', 'vary': 'X-Auth-Token', 'connection': 'close'}
2014-03-05 11:56:34.284 | 2014-03-05 11:30:18,312 Response Body: {"access": {"token": {"issued_at": "2014-03-05T11:30:18.255082", "expires": "2014-03-05T12:30:18Z", "id": "<TOKEN>
2014-03-05 11:56:34.284 | 2014-03-05 11:30:18,312 Large body (10648) md5 summary: a72282e83c228bfcf861c768bbcbdf79
2014-03-05 11:56:34.285 | 2014-03-05 11:30:18,313 Request: GET http://127.0.0.1:8774/v3/os-cells/capacities
2014-03-05 11:56:34.285 | 2014-03-05 11:30:18,313 Request Headers: {'Content-Type': 'application/json', 'Accept': 'application/json', 'X-Auth-Token': '<Token omitted>'}
2014-03-05 11:56:34.285 | 2014-03-05 11:31:18,373 Response Status: 500
2014-03-05 11:56:34.285 | 2014-03-05 11:31:18,373 Nova/Cinder request id: req-ae22c360-c3b8-4ad5-86d1-37e5664fb9ea
2014-03-05 11:56:34.285 | 2014-03-05 11:31:18,373 Response Headers: {'content-length': '216', 'date': 'Wed, 05 Mar 2014 11:31:18 GMT', 'content-type': 'application/json; charset=UTF-8', 'connection': 'close'}
2014-03-05 11:56:34.285 | 2014-03-05 11:31:18,373 Response Body: {"computeFault": {"message": "Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.\n<class 'oslo.messaging.exceptions.MessagingTimeout'>", "code": 500}}
2014-03-05 11:56:34.285 | }}}
------------------------------------------------------------------------------------------------------------------------------------------
Full logs are:
http://logs.openstack.org/57/78157/1/check/check-tempest-dsvm-full/bcb3b6b
This is the corresponding nova-api log message.
2014-03-05 11:31:18.368 27772 TRACE nova.api. openstack. extensions Traceback (most recent call last): openstack. extensions File "/opt/stack/ new/nova/ nova/api/ openstack/ extensions. py", line 472, in wrapped openstack. extensions return f(*args, **kwargs) openstack. extensions File "/opt/stack/ new/nova/ nova/api/ openstack/ compute/ plugins/ v3/cells. py", line 152, in capacities openstack. extensions cell_name=id) openstack. extensions File "/opt/stack/ new/nova/ nova/cells/ rpcapi. py", line 349, in get_capacities openstack. extensions return cctxt.call(ctxt, 'get_capacities', cell_name= cell_name) openstack. extensions File "/opt/stack/ new/oslo. messaging/ oslo/messaging/ rpc/client. py", line 150, in call openstack. extensions wait_for_ reply=True, timeout=timeout) openstack. extensions File "/opt/stack/ new/oslo. messaging/ oslo/messaging/ transport. py", line 90, in _send openstack. extensions timeout=timeout) openstack. extensions File "/opt/stack/ new/oslo. messaging/ oslo/messaging/ _drivers/ amqpdriver. py", line 409, in send openstack. extensions return self._send(target, ctxt, message, wait_for_reply, timeout) openstack. extensions File "/opt/stack/ new/oslo. messaging/ oslo/messaging/ _drivers/ amqpdriver. py", line 400, in _send openstack. extensions result = self._waiter. wait(msg_ id, timeout) openstack. extensions File "/opt/stack/ new/oslo. messaging/ oslo/messaging/ _drivers/ amqpdriver. py", line 267, in wait openstack. extensions reply, ending = self._poll_ connection( msg_id, timeout) openstack. extensions File "/opt/stack/ new/oslo. messaging/ oslo/messaging/ _drivers/ amqpdriver. py", line 217, in _poll_connection openstack. extensions % msg_id) openstack. extensions MessagingTimeout: Timed out waiting for a reply to message ID 47f8ba13bf9841d 5a24c6339e0f256 1c openstack. extensions
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
2014-03-05 11:31:18.368 27772 TRACE nova.api.
It looks like cells is not configured for the test system as the rpc is timing out. We could handle MessagingTimeout exceptions, but I think theoretically we'd have to handle that for every rpc call. I think for tempest though we should not be calling the cells API unless we know the target system is configured with cells enabled. Maybe we should catch this all earlier if cells is not enabled