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
This commit is contained in:
Artom Lifshitz 2022-05-05 14:17:27 -04:00
parent 9625f0d364
commit 4fc47f68c7
2 changed files with 5 additions and 4 deletions

View File

@ -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']

View File

@ -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()