diff --git a/cinder_tempest_plugin/api/volume/base.py b/cinder_tempest_plugin/api/volume/base.py index f948a93..ea6bd2e 100644 --- a/cinder_tempest_plugin/api/volume/base.py +++ b/cinder_tempest_plugin/api/volume/base.py @@ -138,6 +138,11 @@ class BaseVolumeTest(api_version_utils.BaseMicroversionTest, 'name', data_utils.rand_name(self.__class__.__name__ + '-instance')) + if wait_until == 'SSHABLE' and not kwargs.get('validation_resources'): + kwargs['validation_resources'] = ( + self.get_test_validation_resources(self.os_primary)) + kwargs['validatable'] = True + tenant_network = self.get_tenant_network() body, _ = compute.create_test_server( self.os_primary, diff --git a/cinder_tempest_plugin/api/volume/test_volume_backup.py b/cinder_tempest_plugin/api/volume/test_volume_backup.py index 7ac33c2..190a483 100644 --- a/cinder_tempest_plugin/api/volume/test_volume_backup.py +++ b/cinder_tempest_plugin/api/volume/test_volume_backup.py @@ -31,6 +31,16 @@ class VolumesBackupsTest(base.BaseVolumeTest): if not CONF.volume_feature_enabled.backup: raise cls.skipException("Cinder backup feature disabled") + @classmethod + def setup_credentials(cls): + # Setting network=True, subnet=True creates a default network + cls.set_network_resources( + network=True, + subnet=True, + router=True, + dhcp=True) + super(VolumesBackupsTest, cls).setup_credentials() + @decorators.idempotent_id('885410c6-cd1d-452c-a409-7c32b7e0be15') def test_volume_snapshot_backup(self): """Create backup from snapshot.""" @@ -107,7 +117,7 @@ class VolumesBackupsTest(base.BaseVolumeTest): server = self.create_server( name=server_name, block_device_mapping=bd_map, - wait_until='ACTIVE') + wait_until='SSHABLE') # Delete VM self.os_primary.servers_client.delete_server(server['id']) 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 @@ class SnapshotDataIntegrityTests(manager.ScenarioTest): 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 @@ class SnapshotDataIntegrityTests(manager.ScenarioTest): # 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 @@ class TestEncryptedCinderVolumes(manager.EncryptionScenarioTest, 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 @@ class TestEncryptedCinderVolumes(manager.EncryptionScenarioTest, 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 @@ class VolumeMultiattachTests(manager.ScenarioTest, 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 @@ class VolumeMultiattachTests(manager.ScenarioTest, # 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 @@ class VolumeMultiattachTests(manager.ScenarioTest, # 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 @@ class VolumeMultiattachTests(manager.ScenarioTest, # 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 diff --git a/requirements.txt b/requirements.txt index 4d75108..6da34b9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,4 +5,4 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0 oslo.config>=5.1.0 # Apache-2.0 oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0 -tempest>=27.0.0 # Apache-2.0 +tempest>=30.0.0 # Apache-2.0