From 4fc47f68c7710ccfb67c3ad28a58e047a8b51c1a Mon Sep 17 00:00:00 2001 From: Artom Lifshitz Date: Thu, 5 May 2022 14:17:27 -0400 Subject: [PATCH] Make recreate_server() wait until SSHABLE Continuing the work to bandaid any tests that involve volume attachment/detachment, make the setUp() method of ServerActionsTestJSON wait for the SSHABLE status. Some of its tests, for example test_rebuild_server_with_volume_attached, use a class-level server resource that is created by setUp(). We also need to add the optional wait_until kwarg to recreate_server(), as the latter is called by setUp() in some cases. Change-Id: I3b7bcadbb7d608d705754b6ad7e2869e07b81b75 Related-Bug: 1960310 --- tempest/api/compute/base.py | 5 +++-- tempest/api/compute/servers/test_server_actions.py | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tempest/api/compute/base.py b/tempest/api/compute/base.py index e16afaf1de..41e73ecdf6 100644 --- a/tempest/api/compute/base.py +++ b/tempest/api/compute/base.py @@ -412,7 +412,8 @@ class BaseV2ComputeTest(api_version_utils.BaseMicroversionTest, return image @classmethod - def recreate_server(cls, server_id, validatable=False, **kwargs): + def recreate_server(cls, server_id, validatable=False, wait_until='ACTIVE', + **kwargs): """Destroy an existing class level server and creates a new one Some test classes use a test server that can be used by multiple @@ -440,7 +441,7 @@ class BaseV2ComputeTest(api_version_utils.BaseMicroversionTest, validatable, validation_resources=cls.get_class_validation_resources( cls.os_primary), - wait_until='ACTIVE', + wait_until=wait_until, adminPass=cls.password, **kwargs) return server['id'] diff --git a/tempest/api/compute/servers/test_server_actions.py b/tempest/api/compute/servers/test_server_actions.py index 870c6f5419..bd4e0e8296 100644 --- a/tempest/api/compute/servers/test_server_actions.py +++ b/tempest/api/compute/servers/test_server_actions.py @@ -65,12 +65,12 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest): server = self.create_test_server( validatable=True, validation_resources=validation_resources, - wait_until='ACTIVE') + wait_until='SSHABLE') self.__class__.server_id = server['id'] except Exception: # Rebuild server if something happened to it during a test self.__class__.server_id = self.recreate_server( - self.server_id, validatable=True) + self.server_id, validatable=True, wait_until='SSHABLE') def tearDown(self): super(ServerActionsTestJSON, self).tearDown()