Extend resource_reaches_status
The resource_reaches_status assumes that the attribute to be checked is called 'status' but this can vary between resource types so allow the name of the attribute to specified.
This commit is contained in:
@@ -369,12 +369,15 @@ class TestOpenStackUtils(ut_utils.BaseTestCase):
|
||||
'e01df65a')
|
||||
|
||||
def test__resource_reaches_status_bespoke(self):
|
||||
client_mock = mock.MagicMock()
|
||||
resource_mock = mock.MagicMock()
|
||||
resource_mock.get.return_value = mock.MagicMock(status='readyish')
|
||||
resource_mock.special_status = 'readyish'
|
||||
client_mock.get.return_value = resource_mock
|
||||
openstack_utils._resource_reaches_status(
|
||||
resource_mock,
|
||||
client_mock,
|
||||
'e01df65a',
|
||||
'readyish')
|
||||
'readyish',
|
||||
resource_attribute='special_status')
|
||||
|
||||
def test__resource_reaches_status_bespoke_fail(self):
|
||||
resource_mock = mock.MagicMock()
|
||||
|
||||
@@ -1886,7 +1886,8 @@ def download_image(image_url, target_file):
|
||||
|
||||
def _resource_reaches_status(resource, resource_id,
|
||||
expected_status='available',
|
||||
msg='resource'):
|
||||
msg='resource',
|
||||
resource_attribute='status'):
|
||||
"""Wait for an openstack resources status to reach an expected status.
|
||||
|
||||
Wait for an openstack resources status to reach an expected status
|
||||
@@ -1902,9 +1903,11 @@ def _resource_reaches_status(resource, resource_id,
|
||||
:type expected_status: str
|
||||
:param msg: text to identify purpose in logging
|
||||
:type msg: str
|
||||
:param resource_attribute: Resource attribute to check against
|
||||
:type resource_attribute: str
|
||||
:raises: AssertionError
|
||||
"""
|
||||
resource_status = resource.get(resource_id).status
|
||||
resource_status = getattr(resource.get(resource_id), resource_attribute)
|
||||
logging.info("{}: resource {} in {} state, waiting for {}".format(
|
||||
msg, resource_id, resource_status, expected_status))
|
||||
assert resource_status == expected_status
|
||||
@@ -1914,6 +1917,7 @@ def resource_reaches_status(resource,
|
||||
resource_id,
|
||||
expected_status='available',
|
||||
msg='resource',
|
||||
resource_attribute='status',
|
||||
wait_exponential_multiplier=1,
|
||||
wait_iteration_max_time=60,
|
||||
stop_after_attempt=8,
|
||||
@@ -1933,6 +1937,8 @@ def resource_reaches_status(resource,
|
||||
:type expected_status: str
|
||||
:param msg: text to identify purpose in logging
|
||||
:type msg: str
|
||||
:param resource_attribute: Resource attribute to check against
|
||||
:type resource_attribute: str
|
||||
:param wait_exponential_multiplier: Wait 2^x * wait_exponential_multiplier
|
||||
seconds between each retry
|
||||
:type wait_exponential_multiplier: int
|
||||
@@ -1954,7 +1960,8 @@ def resource_reaches_status(resource,
|
||||
resource,
|
||||
resource_id,
|
||||
expected_status,
|
||||
msg)
|
||||
msg,
|
||||
resource_attribute)
|
||||
|
||||
|
||||
def _resource_removed(resource, resource_id, msg="resource"):
|
||||
|
||||
Reference in New Issue
Block a user