Fix use of get_server_ip with fixed networks

If a fixed network is used, we see errors like the following in three
compute tests:

KeyError: 'addresses'

This is because get_server_ip expects to be called with a detailed
server response, but in these cases is called with a create server
response, which does not contain the 'addresses' field.

This change fixes the issue by obtaining a detailed server response
where necessary.

Change-Id: I9deeb0e527a8537c71657507cabd81a63a421d9c
Closes-Bug: #1817701
This commit is contained in:
Mark Goddard 2019-09-02 14:41:02 +01:00
parent 9e63a0323e
commit fa30d2fb51
3 changed files with 13 additions and 0 deletions

View File

@ -79,6 +79,9 @@ class AttachInterfacesTestBase(base.BaseV2ComputeTest):
validatable=True,
validation_resources=validation_resources,
wait_until='ACTIVE')
# NOTE(mgoddard): Get detailed server to ensure addresses are present
# in fixed IP case.
server = self.servers_client.show_server(server['id'])['server']
# NOTE(artom) self.create_test_server adds cleanups, but this is
# apparently not enough? Add cleanup here.
self.addCleanup(self.delete_server, server['id'])
@ -319,6 +322,9 @@ class AttachInterfacesTestJSON(AttachInterfacesTestBase):
self.addCleanup(self.delete_server, server['id'])
for server in servers:
# NOTE(mgoddard): Get detailed server to ensure addresses are
# present in fixed IP case.
server = self.servers_client.show_server(server['id'])['server']
self._wait_for_validation(server, validation_resources)
# attach the port to the server
iface = self.interfaces_client.create_interface(

View File

@ -361,6 +361,10 @@ class TaggedAttachmentsTest(DeviceTaggingBase):
networks=[{'uuid': self.get_tenant_network()['id']}])
self.addCleanup(self.delete_server, server['id'])
# NOTE(mgoddard): Get detailed server to ensure addresses are present
# in fixed IP case.
server = self.servers_client.show_server(server['id'])['server']
# Attach tagged nic and volume
interface = self.interfaces_client.create_interface(
server['id'], net_id=net['id'],

View File

@ -345,6 +345,9 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
# from setUp is not volume-backed.
server = self.create_test_server(
volume_backed=True, wait_until='ACTIVE')
# NOTE(mgoddard): Get detailed server to ensure addresses are present
# in fixed IP case.
server = self.servers_client.show_server(server['id'])['server']
self._test_resize_server_confirm(server['id'])
if CONF.compute_feature_enabled.console_output:
# Now do something interactive with the guest like get its console