Minor fixes for Ranger flavor tests

Fixed test that gave false positives
and false negatives, added skipcheck
to that test. Updated config value to
boolean so that test skipchecks in flavor
tests worked as expected. Added function
for checking the status of individual
regions on a flavor.

Change-Id: I331e12a757b8eb1182cb88a19a8fd9607358143e
This commit is contained in:
jh629g 2020-06-03 15:30:09 -05:00
parent a4eb88a69c
commit 7241704336
3 changed files with 41 additions and 13 deletions

View File

@ -55,9 +55,9 @@ ORM_GROUP_OPTIONS = [
cfg.StrOpt("catalog_type",
default='ranger',
help="ranger catalog type"),
cfg.StrOpt("alt_region_available",
default=False,
help="Alt region for ranger tempest testing"),
cfg.BoolOpt("alt_region_available",
default=False,
help="Alt region for ranger tempest testing"),
cfg.StrOpt("alt_region",
default='',
help="Provide alternate region for creating"

View File

@ -44,7 +44,6 @@ class BaseOrmTest(test.BaseTestCase):
# Get regions in ranger deployment
_, regions_list = cls.region_client.list_regions()
regions = [x for x in regions_list['regions']]
for region in regions:
if region['id'] is CONF.identity.region or \
(region['id'] is CONF.ranger.alt_region and

View File

@ -150,6 +150,33 @@ class TestTempestFms(fms_base.FmsBaseOrmTest):
self._wait_for_flavor_status_on_dcp(flavor_id, 'Success')
def _wait_for_flavor_region_status(self, flavor, region_name):
region_index = 0
start = int(time.time())
for regions in flavor['regions']:
if regions['name'] == region_name:
region_status = regions['status']
while region_status != 'Success':
time.sleep(self.build_interval)
region_status = \
self.fms_client.get_flavor(flavor['id'])
region_status = \
region_status['regions'][region_index]['status']
if region_status == 'Error':
message = ('Flavor region %s failed to'
' reach success status'
' and is in ERROR status on orm' %
region_name)
raise exceptions.TempestException(message)
if int(time.time()) - start >= self.build_timeout:
message = ('Flavor %s region %s failed to reach'
' success status within the required'
' time (%s s) on orm and is in %s status.'
% (flavor['id'], region_name,
self.build_timeout,
region_status))
region_index += 1
def _restore_default_tags(self, flavor_id):
tag_body = {"tags": self.tags}
_, body = self.client.update_tags(flavor_id, tag_body)
@ -303,31 +330,33 @@ class TestTempestFms(fms_base.FmsBaseOrmTest):
# restore deleted tags
self._exec_tags_function(self.flavor['id'], restore_tags, 'add', None)
@testtools.skipUnless(CONF.ranger.alt_region_available,
'Alt region not provided, skipping this test')
@decorators.idempotent_id('ec74d68f-b42a-41a8-9685-ff5eca25ea0c')
def test_add_delete_flavor_region(self):
# setup data to add region
region_id = CONF.identity.region
post_body = self._get_flavor_params(set_region=False)
post_body = self._get_flavor_params()
flavor = self._data_setup(post_body)
test_flavor_id = flavor['id']
post_region_body = '{"regions": [{"name": "%s"}]}' % (region_id)
post_region_body = \
'{"regions": [{"name": "%s"}]}' % (CONF.ranger.alt_region)
post_region_body = json.loads(post_region_body)
_, body = self.client.add_flavor_regions(test_flavor_id,
post_region_body)
self._wait_for_flavor_status_on_dcp(test_flavor_id, 'Success')
_, body = self.client.get_flavor(test_flavor_id)
self.assertEqual(body["flavor"]["regions"][0]["name"],
self._wait_for_flavor_region_status(flavor, CONF.ranger.alt_region)
self.assertEqual(body["flavor"]["regions"][1]["name"],
post_region_body["regions"][0]["name"])
# remove added region and then check to confirm flavor status
_, body = self.client.delete_flavor_region(test_flavor_id,
region_id)
# flavor status must show 'no regions' when it has no region assigned
self._wait_for_flavor_status_on_dcp(test_flavor_id, 'no regions')
# flavor region is now empty after the lone region was removed
CONF.ranger.alt_region)
self._wait_for_flavor_status_on_dcp(test_flavor_id, 'Success')
_, body = self.client.get_flavor(test_flavor_id)
self.assertTrue(len(body["flavor"]["regions"]) == 0)
self.assertTrue(len(body["flavor"]["regions"]) == 1)
@SYNC('flavor')
@decorators.idempotent_id('71404409-5d95-472c-8dac-b49a1c0c4b37')