Add test related to FMS

- create flavor with swap and ephemeral paramters
- create flavor with disk size zero
- verify additional paramters in list flavor
- create flavor with region group type
- create flavor with region group type and a single region
- create flavor with two regions
- create flavour with uuid passed explicitly

fixed Issue with pylint

- ranger_tempest_plugin/config.py:19: [C0103(invalid-name), ]
- ranger_tempest_plugin/config.py:24: [C0103(invalid-name), ]
- ranger_tempest_plugin/config.py:29: [C0103(invalid-name), ]
- ranger_tempest_plugin/config.py:34: [C0103(invalid-name), ]

Change-Id: I695a3f23d8c1d6034c465a03a709b877995ecb95
This commit is contained in:
AbhishekJ 2019-09-06 14:08:20 +00:00
parent 1637826d1e
commit 9eb04e2737
3 changed files with 150 additions and 11 deletions

View File

@ -16,22 +16,22 @@
from oslo_config import cfg
service_available_group = cfg.OptGroup(
SERVICE_AVAILABLE_GROUP = cfg.OptGroup(
name="service_available",
title="Available OpenStack Services"
)
ServiceAvailableGroup = [
ORM_SERVICE_AVAILABLE_GROUP = [
cfg.BoolOpt("ranger", default=False,
help="Whether or not ranger is expected to be available")
]
orm_group = cfg.OptGroup(
ORM_GROUP = cfg.OptGroup(
name="ranger",
title="Ranger Service option"
)
OrmGroup = [
ORM_GROUP_OPTIONS = [
cfg.StrOpt("uri",
default="orm",
help="Uri of the orm service."),
@ -71,5 +71,9 @@ OrmGroup = [
help="Supported flavor series"),
cfg.StrOpt("domain",
default='Default',
help="Domain used for Ranger tempest testing")
help="Domain used for Ranger tempest testing"),
cfg.StrOpt("region_alt",
default='',
help="Provide alternate region for creating"
"resources with multiple regions"),
]

View File

@ -25,8 +25,8 @@ from tempest.test_discover import plugins
class RangerPlugin(plugins.TempestPlugin):
def get_opt_lists(self):
return [(
project_config.orm_group.name,
project_config.OrmGroup)]
project_config.ORM_GROUP.name,
project_config.ORM_GROUP_OPTIONS)]
def load_tests(self):
base_path = os.path.split(os.path.dirname(
@ -38,9 +38,9 @@ class RangerPlugin(plugins.TempestPlugin):
def register_opts(self, conf):
config.register_opt_group(
conf,
project_config.service_available_group,
project_config.ServiceAvailableGroup)
project_config.SERVICE_AVAILABLE_GROUP,
project_config.ORM_SERVICE_AVAILABLE_GROUP)
config.register_opt_group(
conf,
project_config.orm_group,
project_config.OrmGroup)
project_config.ORM_GROUP,
project_config.ORM_GROUP_OPTIONS)

View File

@ -14,7 +14,9 @@
# under the License.
import json
import uuid
from ranger_tempest_plugin import data_utils as orm_data_utils
from ranger_tempest_plugin.tests.api import fms_base
from tempest import config
@ -68,6 +70,14 @@ class TestTempestFms(fms_base.FmsBaseOrmTest):
_, body = self.client.get_flavor(flavor_id)
return body["flavor"]
def _create_region_group(self):
_, body = self.rms_client.create_region_group(
**orm_data_utils.rand_region_group([CONF.identity.region])
)
group_id = body['group']['id']
self.addCleanup(self.rms_client.delete_region_group, group_id)
return group_id
def _data_setup(self, post_body):
flavor = self._create_flv_and_validate_creation_on_dcp_and_lcp(
**post_body)
@ -359,3 +369,128 @@ class TestTempestFms(fms_base.FmsBaseOrmTest):
self._del_flv_and_validate_deletion_on_dcp_and_lcp(test_flvr_id)
self.assertRaises(exceptions.NotFound, self.client.get_flavor,
test_flvr_id)
@decorators.idempotent_id('2a1240d8-ae30-4c37-b99f-af961a5e16cb')
def test_create_flavor_with_swap_and_ephemeral(self):
post_body = self._get_flavor_params()
# set swap and ephemeral size
swap = ephemeral = '1024'
# update swap and ephemeral
post_body['ephemeral'] = ephemeral
post_body['swap'] = swap
flavor = self._data_setup(post_body)
test_flvr_id = flavor['id']
# verify flavor record created successfully
flavor_details = self._get_flavor_details(test_flvr_id)
self.assertEqual(flavor_details['status'], 'Success')
self.assertEqual(flavor_details['swap'], swap)
self.assertEqual(flavor_details['ephemeral'], ephemeral)
@decorators.idempotent_id('2178be75-c36b-4cfe-9df7-8a4bff6e7f83')
def test_list_flavor_with_additional_field(self):
_, body = self.client.list_flavors()
fields = [
'id',
'description',
'series',
'ram',
'vcpus',
'disk',
'swap',
'ephemeral',
'extra-specs',
'options',
'tag',
'regions',
'visibility',
'tenants',
]
if body['flavors']:
flavor = body['flavors'][0]
# check fields is present in response dict as keys
self.assertTrue(set(fields).issubset(set(flavor.keys())))
@decorators.idempotent_id('53275983-6999-42f2-8ce5-6a83ade3980f')
def test_create_flavor_with_zero_disk(self):
post_body = self._get_flavor_params()
disk = '0'
post_body['disk'] = disk
flavor = self._data_setup(post_body)
test_flvr_id = flavor['id']
flavor_details = self._get_flavor_details(test_flvr_id)
self.assertEqual(flavor_details["status"], "Success")
self.assertEqual(flavor_details["disk"], disk)
@decorators.idempotent_id('997ca03c-4176-4632-a0c9-7e943b03306c')
def test_create_flavor_with_region_group(self):
# create region group
_, body = self.rms_client.create_region_group(
**orm_data_utils.rand_region_group([CONF.identity.region])
)
group_id = body['group']['id']
self.addCleanup(self.rms_client.delete_region_group, group_id)
post_body = self._get_flavor_params()
region_group = {'name': group_id, 'type': 'group'}
post_body['regions'] = [region_group]
flavor = self._data_setup(post_body)
test_flvr_id = flavor['id']
flavor_details = self._get_flavor_details(test_flvr_id)
self.assertEqual(flavor_details['status'], 'Success')
self.assertEqual(flavor['regions'][0]['name'], CONF.identity.region)
@decorators.idempotent_id('ea2a618e-bd53-460b-bde5-01ea20b417c9')
def test_create_flavor_with_two_regions(self):
region_alt = CONF.ranger.region_alt
if not region_alt:
raise exceptions.InvalidConfiguration(
'Provide region_alt in ranger block in configuration file')
post_body = self._get_flavor_params()
post_body['regions'].append(
{'name': region_alt}
)
flavor = self._data_setup(post_body)
test_flvr_id = flavor['id']
flavor_details = self._get_flavor_details(test_flvr_id)
self.assertEqual(flavor_details['status'], 'Success')
self.assertEqual(flavor['regions'][0]['name'], CONF.identity.region)
self.assertEqual(flavor['regions'][1]['name'], region_alt)
@decorators.idempotent_id('06c81b29-85b6-4edf-ab89-3877c49e23bc')
def test_create_flavor_with_single_and_group_region(self):
region_alt = CONF.ranger.region_alt
if not region_alt:
raise exceptions.InvalidConfiguration(
'Provide region_alt in ranger block in configuration file')
group_id = self._create_region_group()
post_body = self._get_flavor_params()
post_body['regions'] = [
{
'name': group_id,
'type': 'group',
},
{
'name': region_alt,
'type': 'single',
}
]
flavor = self._data_setup(post_body)
test_flvr_id = flavor['id']
flavor_details = self._get_flavor_details(test_flvr_id)
self.assertEqual(flavor_details['status'], 'Success')
self.assertEqual(flavor['regions'][0]['name'], CONF.identity.region)
self.assertEqual(flavor['regions'][1]['name'], region_alt)
@decorators.idempotent_id('997ca03c-4176-4632-a0c9-7e943b03306d')
def test_create_flavor_with_uuid(self):
post_body = self._get_flavor_params()
uuid_ = uuid.uuid4().hex
post_body['id'] = uuid_
flavor = self._data_setup(post_body)
flavor_details = self._get_flavor_details(uuid_)
self.assertEqual(flavor_details['status'], 'Success')
self.assertEqual(flavor['id'], uuid_)