Wait for servers to be SSHABLE
This is necessary to make sure we don't miss an attach or detach
event in the instance.
Depends-On: https://review.opendev.org/c/openstack/tempest/+/882342
Change-Id: I4cb8af79d6d474b28e96d7b2c385ed8e5ba9c1d7
diff --git a/cinder_tempest_plugin/scenario/test_snapshots.py b/cinder_tempest_plugin/scenario/test_snapshots.py
index 99e1057..f376954 100644
--- a/cinder_tempest_plugin/scenario/test_snapshots.py
+++ b/cinder_tempest_plugin/scenario/test_snapshots.py
@@ -23,7 +23,14 @@
def setUp(self):
super(SnapshotDataIntegrityTests, self).setUp()
- self.keypair = self.create_keypair()
+ self.validation_resources = self.get_test_validation_resources(
+ self.os_primary)
+ # NOTE(danms): If validation is enabled, we will have a keypair to use,
+ # otherwise we need to create our own.
+ if 'keypair' in self.validation_resources:
+ self.keypair = self.validation_resources['keypair']
+ else:
+ self.keypair = self.create_keypair()
self.security_group = self.create_security_group()
@decorators.idempotent_id('ff10644e-5a70-4a9f-9801-8204bb81fb61')
@@ -48,6 +55,9 @@
# Create an instance
server = self.create_server(
key_name=self.keypair['name'],
+ validatable=True,
+ validation_resources=self.validation_resources,
+ wait_until='SSHABLE',
security_groups=[{'name': self.security_group['name']}])
# Create an empty volume
diff --git a/cinder_tempest_plugin/scenario/test_volume_encrypted.py b/cinder_tempest_plugin/scenario/test_volume_encrypted.py
index eb0e817..69b0ab2 100644
--- a/cinder_tempest_plugin/scenario/test_volume_encrypted.py
+++ b/cinder_tempest_plugin/scenario/test_volume_encrypted.py
@@ -38,11 +38,6 @@
def resource_cleanup(cls):
super(TestEncryptedCinderVolumes, cls).resource_cleanup()
- def launch_instance(self):
- keypair = self.create_keypair()
-
- return self.create_server(key_name=keypair['name'])
-
def attach_detach_volume(self, server, volume):
attached_volume = self.nova_volume_attach(server, volume)
self.nova_volume_detach(server, attached_volume)
@@ -108,7 +103,11 @@
self.volumes_client, volume_s['id'], 'available')
volume_source = self.volumes_client.show_volume(
volume_s['id'])['volume']
- server = self.launch_instance()
+ validation_resources = self.get_test_validation_resources(
+ self.os_primary)
+ server = self.create_server(wait_until='SSHABLE',
+ validatable=True,
+ validation_resources=validation_resources)
self.attach_detach_volume(server, volume_source)
@decorators.idempotent_id('5bb622ab-5060-48a8-8840-d589a548b7e4')
diff --git a/cinder_tempest_plugin/scenario/test_volume_multiattach.py b/cinder_tempest_plugin/scenario/test_volume_multiattach.py
index 235cb25..e04610f 100644
--- a/cinder_tempest_plugin/scenario/test_volume_multiattach.py
+++ b/cinder_tempest_plugin/scenario/test_volume_multiattach.py
@@ -31,7 +31,14 @@
def setUp(self):
super(VolumeMultiattachTests, self).setUp()
- self.keypair = self.create_keypair()
+ self.validation_resources = self.get_test_validation_resources(
+ self.os_primary)
+ # NOTE(danms): If validation is enabled, we will have a keypair to use,
+ # otherwise we need to create our own.
+ if 'keypair' in self.validation_resources:
+ self.keypair = self.validation_resources['keypair']
+ else:
+ self.keypair = self.create_keypair()
self.security_group = self.create_security_group()
@classmethod
@@ -52,6 +59,9 @@
# Create an instance
server_1 = self.create_server(
key_name=self.keypair['name'],
+ wait_until='SSHABLE',
+ validatable=True,
+ validation_resources=self.validation_resources,
security_groups=[{'name': self.security_group['name']}])
# Create multiattach type
@@ -92,6 +102,9 @@
# Create another instance
server_2 = self.create_server(
key_name=self.keypair['name'],
+ validatable=True,
+ validation_resources=self.validation_resources,
+ wait_until='SSHABLE',
security_groups=[{'name': self.security_group['name']}])
instance_2_ip = self.get_server_ip(server_2)
@@ -117,6 +130,9 @@
# Create an instance
server = self.create_server(
key_name=self.keypair['name'],
+ validatable=True,
+ validation_resources=self.validation_resources,
+ wait_until='SSHABLE',
security_groups=[{'name': self.security_group['name']}])
# Create multiattach type