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:
parent
a4eb88a69c
commit
7241704336
@ -55,9 +55,9 @@ ORM_GROUP_OPTIONS = [
|
|||||||
cfg.StrOpt("catalog_type",
|
cfg.StrOpt("catalog_type",
|
||||||
default='ranger',
|
default='ranger',
|
||||||
help="ranger catalog type"),
|
help="ranger catalog type"),
|
||||||
cfg.StrOpt("alt_region_available",
|
cfg.BoolOpt("alt_region_available",
|
||||||
default=False,
|
default=False,
|
||||||
help="Alt region for ranger tempest testing"),
|
help="Alt region for ranger tempest testing"),
|
||||||
cfg.StrOpt("alt_region",
|
cfg.StrOpt("alt_region",
|
||||||
default='',
|
default='',
|
||||||
help="Provide alternate region for creating"
|
help="Provide alternate region for creating"
|
||||||
|
@ -44,7 +44,6 @@ class BaseOrmTest(test.BaseTestCase):
|
|||||||
# Get regions in ranger deployment
|
# Get regions in ranger deployment
|
||||||
_, regions_list = cls.region_client.list_regions()
|
_, regions_list = cls.region_client.list_regions()
|
||||||
regions = [x for x in regions_list['regions']]
|
regions = [x for x in regions_list['regions']]
|
||||||
|
|
||||||
for region in regions:
|
for region in regions:
|
||||||
if region['id'] is CONF.identity.region or \
|
if region['id'] is CONF.identity.region or \
|
||||||
(region['id'] is CONF.ranger.alt_region and
|
(region['id'] is CONF.ranger.alt_region and
|
||||||
|
@ -150,6 +150,33 @@ class TestTempestFms(fms_base.FmsBaseOrmTest):
|
|||||||
|
|
||||||
self._wait_for_flavor_status_on_dcp(flavor_id, 'Success')
|
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):
|
def _restore_default_tags(self, flavor_id):
|
||||||
tag_body = {"tags": self.tags}
|
tag_body = {"tags": self.tags}
|
||||||
_, body = self.client.update_tags(flavor_id, tag_body)
|
_, body = self.client.update_tags(flavor_id, tag_body)
|
||||||
@ -303,31 +330,33 @@ class TestTempestFms(fms_base.FmsBaseOrmTest):
|
|||||||
# restore deleted tags
|
# restore deleted tags
|
||||||
self._exec_tags_function(self.flavor['id'], restore_tags, 'add', None)
|
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')
|
@decorators.idempotent_id('ec74d68f-b42a-41a8-9685-ff5eca25ea0c')
|
||||||
def test_add_delete_flavor_region(self):
|
def test_add_delete_flavor_region(self):
|
||||||
# setup data to add region
|
# setup data to add region
|
||||||
region_id = CONF.identity.region
|
post_body = self._get_flavor_params()
|
||||||
post_body = self._get_flavor_params(set_region=False)
|
|
||||||
flavor = self._data_setup(post_body)
|
flavor = self._data_setup(post_body)
|
||||||
test_flavor_id = flavor['id']
|
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)
|
post_region_body = json.loads(post_region_body)
|
||||||
_, body = self.client.add_flavor_regions(test_flavor_id,
|
_, body = self.client.add_flavor_regions(test_flavor_id,
|
||||||
post_region_body)
|
post_region_body)
|
||||||
self._wait_for_flavor_status_on_dcp(test_flavor_id, 'Success')
|
self._wait_for_flavor_status_on_dcp(test_flavor_id, 'Success')
|
||||||
_, body = self.client.get_flavor(test_flavor_id)
|
_, 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"])
|
post_region_body["regions"][0]["name"])
|
||||||
|
|
||||||
# remove added region and then check to confirm flavor status
|
# remove added region and then check to confirm flavor status
|
||||||
_, body = self.client.delete_flavor_region(test_flavor_id,
|
_, body = self.client.delete_flavor_region(test_flavor_id,
|
||||||
region_id)
|
CONF.ranger.alt_region)
|
||||||
# flavor status must show 'no regions' when it has no region assigned
|
self._wait_for_flavor_status_on_dcp(test_flavor_id, 'Success')
|
||||||
self._wait_for_flavor_status_on_dcp(test_flavor_id, 'no regions')
|
|
||||||
# flavor region is now empty after the lone region was removed
|
|
||||||
_, body = self.client.get_flavor(test_flavor_id)
|
_, body = self.client.get_flavor(test_flavor_id)
|
||||||
self.assertTrue(len(body["flavor"]["regions"]) == 0)
|
|
||||||
|
self.assertTrue(len(body["flavor"]["regions"]) == 1)
|
||||||
|
|
||||||
@SYNC('flavor')
|
@SYNC('flavor')
|
||||||
@decorators.idempotent_id('71404409-5d95-472c-8dac-b49a1c0c4b37')
|
@decorators.idempotent_id('71404409-5d95-472c-8dac-b49a1c0c4b37')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user