summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBalazs Gibizer <gibi@redhat.com>2022-05-17 17:15:40 +0200
committerBalazs Gibizer <gibi@redhat.com>2022-05-18 16:22:33 +0200
commitd8bbaba415bc5cc027079b1b45aa5ee6e75faddf (patch)
tree7f8abdf23e7b485b0ee2b7245b4c566e43450880
parent569c7a89f54c94494fde46ce2aa4fbd26492e640 (diff)
downloadtempest-d8bbaba415bc5cc027079b1b45aa5ee6e75faddf.tar.gz
Wait for guest after resize
To stabilize test_resize_server_with_multiattached_volume we need to wait for the guest OS to fully boot after the resize and before the test attempts to detach the volume. Closes-Bug #1960346 Change-Id: I85ee21868c9281d081c491ee590fe1457f5aa997
-rw-r--r--tempest/api/compute/base.py18
-rw-r--r--tempest/api/compute/volumes/test_attach_volume.py16
2 files changed, 31 insertions, 3 deletions
diff --git a/tempest/api/compute/base.py b/tempest/api/compute/base.py
index 41e73ecdf..74601dcee 100644
--- a/tempest/api/compute/base.py
+++ b/tempest/api/compute/base.py
@@ -456,15 +456,31 @@ class BaseV2ComputeTest(api_version_utils.BaseMicroversionTest,
except Exception:
LOG.exception('Failed to delete server %s', server_id)
- def resize_server(self, server_id, new_flavor_id, **kwargs):
+ def resize_server(
+ self, server_id, new_flavor_id, wait_until='ACTIVE', **kwargs
+ ):
"""resize and confirm_resize an server, waits for it to be ACTIVE."""
self.servers_client.resize_server(server_id, new_flavor_id, **kwargs)
waiters.wait_for_server_status(self.servers_client, server_id,
'VERIFY_RESIZE')
self.servers_client.confirm_resize_server(server_id)
+
waiters.wait_for_server_status(
self.servers_client, server_id, 'ACTIVE')
server = self.servers_client.show_server(server_id)['server']
+
+ validation_resources = self.get_class_validation_resources(
+ self.os_primary)
+ if (
+ validation_resources and
+ wait_until in ("SSHABLE", "PINGABLE") and
+ CONF.validation.run_validation
+ ):
+ tenant_network = self.get_tenant_network()
+ compute.wait_for_ssh_or_ping(
+ server, self.os_primary, tenant_network,
+ True, validation_resources, wait_until, True)
+
self.assert_flavor_equal(new_flavor_id, server['flavor'])
def reboot_server(self, server_id, type):
diff --git a/tempest/api/compute/volumes/test_attach_volume.py b/tempest/api/compute/volumes/test_attach_volume.py
index e4ec209b7..5380c6732 100644
--- a/tempest/api/compute/volumes/test_attach_volume.py
+++ b/tempest/api/compute/volumes/test_attach_volume.py
@@ -378,10 +378,19 @@ class AttachVolumeMultiAttachTest(BaseAttachVolumeTest):
the created volume, and dict of server ID to volumeAttachment
dict entries
"""
+ validation_resources = self.get_class_validation_resources(
+ self.os_primary)
+
servers = []
for x in range(2):
name = 'multiattach-server-%i' % x
- servers.append(self.create_test_server(name=name))
+ servers.append(
+ self.create_test_server(
+ name=name,
+ validatable=True,
+ validation_resources=validation_resources
+ )
+ )
# Now wait for the servers to be ACTIVE.
for server in servers:
@@ -492,7 +501,10 @@ class AttachVolumeMultiAttachTest(BaseAttachVolumeTest):
servers, volume, _ = self._create_and_multiattach()
for server in servers:
- self.resize_server(server['id'], self.flavor_ref_alt)
+ # We need to wait until the guest OS fully boots up as we are going
+ # to detach volumes after the resize. See bug #1960346.
+ self.resize_server(
+ server['id'], self.flavor_ref_alt, wait_until='SSHABLE')
for server in servers:
self._detach_multiattach_volume(volume['id'], server['id'])