Update Sync, update flavor delete tag

update sync to sync from base class for
alt_region tests, update flavor delete
tag test to ensure tag exists before delete

Change-Id: Iea42bc1566203a9959fe74a0ab99fb70f1360119
This commit is contained in:
jh629g 2020-07-15 17:08:04 -05:00 committed by Jeremy Houser
parent 0616e8e574
commit 8434876e2d
5 changed files with 66 additions and 23 deletions

View File

@ -16,6 +16,16 @@
from oslo_config import cfg
OSLO_CONCURRENCY_GROUP = cfg.OptGroup(
name="oslo_concurrency",
title="test concurrency configuration options"
)
CONCURRENCY_GROUP = [
cfg.StrOpt("lock_path", default='/tempest/lock_path',
help="Lock file location for external locks")
]
SERVICE_AVAILABLE_GROUP = cfg.OptGroup(
name="service_available",
title="Available OpenStack Services"

View File

@ -13,7 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
from oslo_concurrency import lockutils
import oslo_concurrency
from oslo_log import log as logging
from ranger_tempest_plugin import clients
from tempest import config
@ -23,7 +24,8 @@ CONF = config.CONF
LOG = logging.getLogger(__name__)
PREFIX = 'alt_region'
SYNC = lockutils.synchronized_with_prefix(PREFIX)
oslo_concurrency.lockutils.set_defaults(CONF.oslo_concurrency.lock_path)
SYNC = oslo_concurrency.lockutils.synchronized_with_prefix(PREFIX)
class BaseOrmTest(test.BaseTestCase):

View File

@ -17,7 +17,9 @@ import copy
import random
import uuid
from oslo_concurrency import lockutils
from ranger_tempest_plugin import data_utils as orm_data_utils
from ranger_tempest_plugin.tests.api import base
from ranger_tempest_plugin.tests.api import cms_base
from tempest import config
@ -26,6 +28,8 @@ from tempest.lib import exceptions
import testtools
CONF = config.CONF
PREFIX = 'customer'
SYNC = lockutils.synchronized_with_prefix(PREFIX)
class TestTempestCms(cms_base.CmsBaseOrmTest):
@ -62,6 +66,7 @@ class TestTempestCms(cms_base.CmsBaseOrmTest):
return group_id
@SYNC('customer')
@decorators.idempotent_id('6072c438-1e45-4c0b-97a6-e5127bd33d89')
def test_get_customer(self):
"""Execute 'get_customer' using the following options
@ -76,6 +81,7 @@ class TestTempestCms(cms_base.CmsBaseOrmTest):
_, body = self.client.get_customer(identifier)
self.assertIn(self.setup_customer_id, body['uuid'])
@SYNC('customer')
@decorators.idempotent_id('6072c438-1e45-4c0b-97a6-e5127bd33d90')
def test_list_customers_with_filters(self):
"""This function executes 'list customer' with all available filters
@ -262,6 +268,7 @@ class TestTempestCms(cms_base.CmsBaseOrmTest):
self.assertIn(new_region_user_id, [x['id']
for x in customer["regions"][0]['users']])
@SYNC('customer')
@decorators.idempotent_id('f1444965-c711-438d-ab86-a2412acbe8e0')
def test_replace_metadata(self):
metadata = {'metadata': {'replace_key': 'replace_value'}}
@ -282,6 +289,7 @@ class TestTempestCms(cms_base.CmsBaseOrmTest):
self.assertIn(self.setup_customer_id,
[x['id'] for x in body['customers']])
@SYNC('customer')
@decorators.idempotent_id('19a6bbe2-92b9-46be-95b7-aa0d9f247d88')
def test_add_regions(self):
region = self._get_region_params()
@ -319,11 +327,12 @@ class TestTempestCms(cms_base.CmsBaseOrmTest):
_, body = self.client.get_customer(test_cust_name)
self.assertIn(test_customer_id, body['uuid'])
@cms_base.base.SYNC('alt_region', external=True)
@base.SYNC('alt_region', external=True)
@testtools.skipUnless(CONF.ranger.alt_region_available,
'Alt region not provided, skipping this test')
@decorators.idempotent_id('c2f4e842-c0c3-4747-9b10-e86c25fe8283')
def test_create_customer_with_region_group(self):
self._update_region(CONF.ranger.alt_region)
# create region group
group_id = self._create_region_group()
@ -342,11 +351,12 @@ class TestTempestCms(cms_base.CmsBaseOrmTest):
self.assertEqual(body['status'], 'Success')
self.assertEqual(len(body['regions']), 2)
@cms_base.base.SYNC('alt_region', external=True)
@base.SYNC('alt_region', external=True)
@testtools.skipUnless(CONF.ranger.alt_region_available,
'Alt region not provided, skipping this test')
@decorators.idempotent_id('5e6f1b6b-bff1-4d30-ba97-4ff66ad47ba9')
def test_create_customer_with_two_regions(self):
self._update_region(CONF.ranger.alt_region)
post_body = self._get_bare_customer_params()
post_body['description'] = 'test create customer multi regions'
@ -363,7 +373,7 @@ class TestTempestCms(cms_base.CmsBaseOrmTest):
self.assertEqual(body['status'], 'Success')
self.assertEqual(len(body['regions']), 2)
@cms_base.base.SYNC('customer')
@SYNC('customer')
@decorators.idempotent_id('43785f87-27d5-408d-997f-de602caeb698')
def test_replace_customer(self):
customer = self._get_bare_customer_params()
@ -398,7 +408,7 @@ class TestTempestCms(cms_base.CmsBaseOrmTest):
self.assertRaises(exceptions.NotFound, self.client.get_customer,
test_customer_id)
@cms_base.base.SYNC('alt_region', external=True)
@base.SYNC('alt_region', external=True)
@testtools.skipUnless(CONF.ranger.alt_region_available,
'Alt region not provided, skipping this test')
@decorators.idempotent_id('b8493b3f-e64d-448e-a965-b0eeff415981')
@ -411,6 +421,7 @@ class TestTempestCms(cms_base.CmsBaseOrmTest):
cust_body['regions'][0]['name'] = CONF.ranger.alt_region
self.assertRaises(exceptions.BadRequest,
self.client.create_customer, **cust_body)
self._update_region(CONF.ranger.alt_region)
@decorators.idempotent_id('1aa52c36-4b1e-459e-9633-12b6cbd53ae7')
def test_customer_while_region_building(self):
@ -452,12 +463,14 @@ class TestTempestCms(cms_base.CmsBaseOrmTest):
self.assertEqual(body['custId'], customer_id)
self._update_region(CONF.identity.region)
@SYNC('customer')
@decorators.idempotent_id('49e08cd0-4d33-4ec4-95a0-500974b3a9bf')
def test_list_customer_additional_fields(self):
_, customer = self.client.get_customer(self.setup_customer_id)
self.assertIn('status', customer)
self.assertIn('regions', customer)
@SYNC('customer')
@decorators.idempotent_id('edf3a30a-fca8-49d0-acc6-c3190c6feb43')
def test_disable_customer(self):
self.client.enable_customer(self.setup_customer_id, False)
@ -474,6 +487,7 @@ class TestTempestCms(cms_base.CmsBaseOrmTest):
_, customer = self.client.get_customer(test_customer_id)
self.assertEqual(customer['uuid'], uuid_)
@SYNC('customer')
@decorators.idempotent_id('8bd31cee-825a-4542-aa1d-bf2d79dbac62')
def test_replace_customer_default_and_region_quota(self):
customer = self._get_bare_customer_params()
@ -496,19 +510,25 @@ class TestTempestCms(cms_base.CmsBaseOrmTest):
self.assertEqual(len(body['regions'][0]['quotas']), 0)
self.assertDictEqual(quota, body['defaultQuotas'][0])
@SYNC('customer')
@decorators.idempotent_id('710ee9a9-7629-4166-941c-75dbf1c10c9d')
def test_update_region_quota(self):
post_body = self._get_customer_params()
uuid_ = uuid.uuid4().hex
post_body['uuid'] = uuid_
test_customer_id = self._create_customer(post_body)
_, test_customer = self.client.get_customer(test_customer_id)
# Get original region quota and change a value
region_quotas = self.setup_customer['regions'][0]['quotas']
region_quotas = test_customer['regions'][0]['quotas']
region = {}
region['type'] = 'single'
region['name'] = CONF.identity.region
region['quotas'] = copy.deepcopy(region_quotas)
region['quotas'][0]['compute'][0]['ram'] = '30'
region['quotas'][0]['compute'][0]['ram'] = '10'
_, body = self.client.update_region(self.setup_customer_id, *[region])
self._wait_for_status(self.setup_customer_id, 'Success')
_, body = self.client.get_customer(self.setup_customer_id)
_, body = self.client.update_region(test_customer_id, *[region])
self._wait_for_status(test_customer_id, 'Success')
_, body = self.client.get_customer(test_customer_id)
self.assertDictEqual(region['quotas'][0],
body['regions'][0]['quotas'][0])
@ -517,7 +537,7 @@ class TestTempestCms(cms_base.CmsBaseOrmTest):
self.assertDictEqual(self.setup_customer['defaultQuotas'][0],
body['defaultQuotas'][0])
@cms_base.base.SYNC('alt_region', external=True)
@base.SYNC('alt_region', external=True)
@testtools.skipUnless(CONF.ranger.alt_region_available,
'Alt region not provided, skipping this test')
@decorators.idempotent_id('4bd683c6-1e1c-4f5d-9f42-6af8ac0b2183')

View File

@ -18,6 +18,7 @@ import time
from oslo_concurrency import lockutils
from ranger_tempest_plugin import data_utils as orm_data_utils
from ranger_tempest_plugin.tests.api import base
from ranger_tempest_plugin.tests.api import fms_base
from tempest import config
from tempest.lib import decorators
@ -306,16 +307,25 @@ class TestTempestFms(fms_base.FmsBaseOrmTest):
@SYNC('flavor')
@decorators.idempotent_id('e0a0eca6-e120-45ab-a1a4-f5b95fdf97f1')
def test_delete_flavor_tag(self):
# test delete_tag command - delete a tag from tags body
delete_tag_key = 'a'
delete_tag_key = 'aa'
_, tag_body = self.client.get_tags(self.flavor['id'])
tag_present = tag_body.get("tags").get(delete_tag_key, None)
if tag_present is None:
self._exec_tags_function(self.flavor['id'],
{'tags': {'aa': 'bb'}},
'add',
None)
# delete the tag key
self._exec_tags_function(self.flavor['id'], None, 'delete',
delete_tag_key)
# do get_tag and tries to retrieve the deleted tag
_, tag_body = self.client.get_tags(self.flavor['id'])
tag_present = tag_body.get("tags").get(delete_tag_key, None)
self.assertIsNone(tag_present)
# restore tags
# restore tag
self._exec_tags_function(self.flavor['id'],
{'tags': {'aa': 'bb'}},
'add',
@ -339,7 +349,7 @@ class TestTempestFms(fms_base.FmsBaseOrmTest):
# restore deleted tags
self._exec_tags_function(self.flavor['id'], restore_tags, 'add', None)
@fms_base.base.SYNC('alt_region', external=True)
@base.SYNC('alt_region', external=True)
@testtools.skipUnless(CONF.ranger.alt_region_available,
'Alt region not provided, skipping this test')
@decorators.idempotent_id('ec74d68f-b42a-41a8-9685-ff5eca25ea0c')
@ -539,7 +549,7 @@ class TestTempestFms(fms_base.FmsBaseOrmTest):
self.assertEqual(flavor_details["status"], "Success")
self.assertEqual(flavor_details["disk"], disk)
@fms_base.base.SYNC('alt_region', external=True)
@base.SYNC('alt_region', external=True)
@testtools.skipUnless(CONF.ranger.alt_region_available,
'Alt region not provided, skipping this test')
@decorators.idempotent_id('997ca03c-4176-4632-a0c9-7e943b03306c')
@ -559,7 +569,7 @@ class TestTempestFms(fms_base.FmsBaseOrmTest):
assert self.region or self.alt_region in \
flavor['regions'][1]['name']
@fms_base.base.SYNC('alt_region', external=True)
@base.SYNC('alt_region', external=True)
@testtools.skipUnless(CONF.ranger.alt_region_available,
'Alt region not provided, skipping this test')
@decorators.idempotent_id('ea2a618e-bd53-460b-bde5-01ea20b417c9')
@ -574,7 +584,7 @@ class TestTempestFms(fms_base.FmsBaseOrmTest):
self.assertEqual(flavor_details['status'], 'Success')
self.assertEqual(len(flavor['regions']), 2)
@fms_base.base.SYNC('alt_region', external=True)
@base.SYNC('alt_region', external=True)
@testtools.skipUnless(CONF.ranger.alt_region_available,
'Alt region not provided, skipping this test')
@decorators.idempotent_id('06c81b29-85b6-4edf-ab89-3877c49e23bc')
@ -601,7 +611,7 @@ class TestTempestFms(fms_base.FmsBaseOrmTest):
self.assertEqual(flavor_details['status'], 'Success')
self.assertEqual(flavor['id'], post_body['id'])
@fms_base.base.SYNC('alt_region', external=True)
@base.SYNC('alt_region', external=True)
@testtools.skipUnless(CONF.ranger.alt_region_available,
'Alt region not provided, skipping this test')
@decorators.idempotent_id('37f1909f-3ba2-403c-ba0c-0a11b869d6a1')

View File

@ -16,6 +16,7 @@
from oslo_concurrency import lockutils
from ranger_tempest_plugin import data_utils as orm_data_utils
from ranger_tempest_plugin.tests.api import base
from ranger_tempest_plugin.tests.api import ims_base
from tempest import config
@ -296,7 +297,7 @@ class TestTempestIms(ims_base.ImsBaseOrmTest):
self.assertRaises(exceptions.NotFound, self.client.get_image,
image['id'])
@ims_base.base.SYNC('alt_region', external=True)
@base.SYNC('alt_region', external=True)
@testtools.skipUnless(CONF.ranger.alt_region_available,
'Alt region not provided, skipping this test')
@decorators.idempotent_id('e642fa39-1b69-4d17-8bd1-aee90ea042a3')
@ -472,7 +473,7 @@ class TestTempestIms(ims_base.ImsBaseOrmTest):
image = body["image"]
self.assertEqual(image['id'], post_body['id'])
@ims_base.base.SYNC('alt_region', external=True)
@base.SYNC('alt_region', external=True)
@testtools.skipUnless(CONF.ranger.alt_region_available,
'Alt region not provided, skipping this test')
@decorators.idempotent_id('7ae78584-55af-45cb-a4a2-b28cc679699e')
@ -502,7 +503,7 @@ class TestTempestIms(ims_base.ImsBaseOrmTest):
self.assertEqual(image['status'], 'Success')
self.assertEqual(len(image['regions']), 2)
@ims_base.base.SYNC('alt_region', external=True)
@base.SYNC('alt_region', external=True)
@testtools.skipUnless(CONF.ranger.alt_region_available,
'Alt region not provided, skipping this test')
@decorators.idempotent_id('73c97918-2081-4f42-9c1e-6fd7a9fb8735')