Comment 4 for bug 1028465

Revision history for this message
Jay Pipes (jaypipes) wrote :

FINALLY figured out what is going on here...

Turns out that the instance dict returned from POST /servers recently changed. The key_name key was added to this return.

However, the instance dicts returned in a call to GET /servers DO NOT contain this key_name key. This is what caused the line:

self.assertTrue(self.s1 in servers)

to fail, because the dicts were not equal, as shown in this Python shell output:

>>> print sorted(d.keys())
[u'OS-DCF:diskConfig', u'OS-EXT-STS:power_state', u'OS-EXT-STS:task_state', u'OS-EXT-STS:vm_state', u'accessIPv4', u'accessIPv6', u'addresses', u'config_drive', u'created', u'flavor', u'hostId', u'id', u'image', u'key_name', u'links', u'metadata', u'name', u'progress', u'status', u'tenant_id', u'updated', u'user_id']
>>> print sorted(i1[0].keys())
[u'OS-DCF:diskConfig', u'OS-EXT-STS:power_state', u'OS-EXT-STS:task_state', u'OS-EXT-STS:vm_state', u'accessIPv4', u'accessIPv6', u'addresses', u'config_drive', u'created', u'flavor', u'hostId', u'id', u'image', u'links', u'metadata', u'name', u'progress', u'status', u'tenant_id', u'updated', u'user_id']

The top dict is what is returned from POST /servers and the bottom dict is what is returned from GET /servers.

Bottom line solution is really to fix the fragile test in Tempest. That said, however, it is a good warning when API results change in Nova! :)