Fix Tempest IMS tests for Ranger
Adjusts tests to work with ranger adjusted for python 3.6. Failures occurred due to bad application of region functionality in previous iterations of tests. Change-Id: Id077817a119e65dd5d483eafa1759ae371600f88
This commit is contained in:
parent
03f238e85e
commit
80186622a9
2
pylintrc
2
pylintrc
@ -66,7 +66,7 @@ disable=protected-access,fixme,too-many-branches,
|
||||
redefined-variable-type,
|
||||
# bug in 1.7.2 https://github.com/PyCQA/pylint/issues/1493
|
||||
not-callable,
|
||||
C0411
|
||||
C0411,R0901
|
||||
|
||||
|
||||
[REPORTS]
|
||||
|
@ -13,6 +13,8 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from oslo_concurrency import lockutils
|
||||
|
||||
from ranger_tempest_plugin.data_utils import data_utils
|
||||
from ranger_tempest_plugin.tests.api import ims_base
|
||||
from tempest import config
|
||||
@ -22,6 +24,9 @@ from tempest.lib import exceptions
|
||||
|
||||
CONF = config.CONF
|
||||
|
||||
PREFIX = 'ranger'
|
||||
SYNC = lockutils.synchronized_with_prefix(PREFIX)
|
||||
|
||||
|
||||
class TestTempestIms(ims_base.ImsBaseOrmTest):
|
||||
|
||||
@ -56,6 +61,12 @@ class TestTempestIms(ims_base.ImsBaseOrmTest):
|
||||
|
||||
super(TestTempestIms, cls).resource_setup()
|
||||
|
||||
def _update_region(self, region_name, status=None):
|
||||
if status is None:
|
||||
status = {'status': 'functional'}
|
||||
self.os_admin.rms_client.update_region_status(
|
||||
region_name, status)
|
||||
|
||||
def _data_setup(self, post_body):
|
||||
self.addCleanup(
|
||||
self._del_img_validate_deletion_on_dcp_and_lcp,
|
||||
@ -293,26 +304,28 @@ class TestTempestIms(ims_base.ImsBaseOrmTest):
|
||||
self.assertRaises(exceptions.NotFound, self.client.get_image,
|
||||
image['id'])
|
||||
|
||||
@SYNC('region')
|
||||
@decorators.idempotent_id('e642fa39-1b69-4d17-8bd1-aee90ea042a3')
|
||||
def test_image_while_region_down(self):
|
||||
# create region with status down
|
||||
region = self._create_region(status='down')
|
||||
|
||||
self._update_region(CONF.identity.region,
|
||||
status={'status': 'down'})
|
||||
# create image within that newly created region
|
||||
post_body = self._get_image_params()
|
||||
post_body['regions'][0]['name'] = region['name']
|
||||
post_body['regions'][0]['name'] = CONF.identity.region
|
||||
|
||||
self.assertRaises(exceptions.BadRequest,
|
||||
self.client.create_image, **post_body)
|
||||
self._update_region(CONF.identity.region)
|
||||
|
||||
@SYNC('region')
|
||||
@decorators.idempotent_id('a1fee342-3000-41a6-97f9-b33fd2734e4d')
|
||||
def test_image_while_region_building(self):
|
||||
# create region with status building
|
||||
region = self._create_region(status='building')
|
||||
|
||||
self._update_region(CONF.identity.region,
|
||||
status={'status': 'building'})
|
||||
# create image within that newly created region
|
||||
post_body = self._get_image_params()
|
||||
post_body['regions'][0]['name'] = region['name']
|
||||
post_body['regions'][0]['name'] = CONF.identity.region
|
||||
|
||||
# add image to tempest cleanup
|
||||
self.addCleanup(
|
||||
@ -320,23 +333,22 @@ class TestTempestIms(ims_base.ImsBaseOrmTest):
|
||||
post_body["id"])
|
||||
|
||||
_, body = self.client.create_image(**post_body)
|
||||
self.assertIn('id', body['image'])
|
||||
image = body['image']
|
||||
_, body = self.client.get_image(image['id'])
|
||||
# since region is building it will send error
|
||||
# notification to ORD
|
||||
self._wait_for_image_status_on_dcp(image['id'], 'Success')
|
||||
self.assertIn('id', body['image'])
|
||||
_, body = self.client.get_image(image['id'])
|
||||
self.assertEqual(body['image']['id'], image['id'])
|
||||
self.assertEqual(body['image']['status'], 'error')
|
||||
self.assertEqual(body['image']['region'][0]['status'], 'success')
|
||||
self._update_region(CONF.identity.region)
|
||||
|
||||
@SYNC('region')
|
||||
@decorators.idempotent_id('b967ce58-5d24-4af2-8416-a336772c8087')
|
||||
def test_image_while_region_maintenance(self):
|
||||
# create region with status maintenance
|
||||
region = self._create_region(status='maintenance')
|
||||
|
||||
self._update_region(CONF.identity.region,
|
||||
status={'status': 'maintenance'})
|
||||
# get image params and add region to them
|
||||
post_body = self._get_image_params()
|
||||
post_body['regions'][0]['name'] = region['name']
|
||||
post_body['regions'][0]['name'] = CONF.identity.region
|
||||
|
||||
# add image to tempest cleanup
|
||||
self.addCleanup(
|
||||
@ -344,14 +356,14 @@ class TestTempestIms(ims_base.ImsBaseOrmTest):
|
||||
post_body['id'])
|
||||
|
||||
_, body = self.client.create_image(**post_body)
|
||||
self.assertIn('id', body['image'])
|
||||
image = body['image']
|
||||
self._wait_for_image_status_on_dcp(image['id'], 'Success')
|
||||
self.assertIn('id', body['image'])
|
||||
|
||||
_, body = self.client.get_image(image['id'])
|
||||
# since region is maintenance it will give error
|
||||
# Notification to ORD failed
|
||||
self.assertEqual(body['image']['id'], image['id'])
|
||||
self.assertEqual(body['image']['status'], 'Error')
|
||||
self.assertEqual(body['image']['region'][0]['status'], 'Success')
|
||||
self._update_region(CONF.identity.region)
|
||||
|
||||
@decorators.idempotent_id('eae7ca20-5383-4579-9f73-0138b8b3ec85')
|
||||
def test_list_public_images(self):
|
||||
@ -384,44 +396,43 @@ class TestTempestIms(ims_base.ImsBaseOrmTest):
|
||||
image_ids = [img['id'] for img in body['images']]
|
||||
self.assertIn(image['id'], image_ids)
|
||||
|
||||
@decorators.idempotent_id('59887b26-8e73-4781-87a4-3b505ece0021')
|
||||
def test_create_image_protected_true(self):
|
||||
post_body = self._get_image_params()
|
||||
# TODO(JH629g): following test skipped until protect image bug resolved
|
||||
# @decorators.idempotent_id('59887b26-8e73-4781-87a4-3b505ece0021')
|
||||
# def test_create_image_protected_true(self):
|
||||
# post_body = self._get_image_params()
|
||||
# set Protected True
|
||||
post_body['protected'] = True
|
||||
# post_body['protected'] = True
|
||||
|
||||
# add image to temepst cleanup
|
||||
self.addCleanup(
|
||||
self._del_img_validate_deletion_on_dcp_and_lcp,
|
||||
post_body['id'])
|
||||
# self.addCleanup(
|
||||
# self._del_img_validate_deletion_on_dcp_and_lcp,
|
||||
# post_body['id'])
|
||||
|
||||
# call client create_IMAGE and wait till status equals 'Success'
|
||||
_, body = self.client.create_image(**post_body)
|
||||
image = body["image"]
|
||||
self._wait_for_image_status_on_dcp(image['id'], 'Success')
|
||||
# _, body = self.client.create_image(**post_body)
|
||||
# image = body["image"]
|
||||
# self._wait_for_image_status_on_dcp(image['id'], 'Success')
|
||||
|
||||
# verify image record created successfully
|
||||
_, body = self.client.get_image(image['id'])
|
||||
image = body["image"]
|
||||
self.assertEqual(image["regions"][0]["name"], CONF.identity.region)
|
||||
# _, body = self.client.get_image(image['id'])
|
||||
# image = body["image"]
|
||||
# self.assertEqual(image["regions"][0]["name"], CONF.identity.region)
|
||||
|
||||
# unset protect for cleanup
|
||||
# post_body['protected'] = False
|
||||
# _, body = self.client.update_image(post_body['id'],
|
||||
# para=None,
|
||||
# **post_body)
|
||||
# self._wait_for_image_status_on_dcp(image['id'], 'Success')
|
||||
|
||||
@decorators.idempotent_id('56cd1de0-3908-41d5-af98-45ad95463817')
|
||||
def test_create_image_with_tags_properties(self):
|
||||
post_body = self._get_image_params()
|
||||
# set tags and properties
|
||||
tags = ["brocade", "vyatta", "vCEImage", "mediumImage"]
|
||||
tags = ["brocade", "mediumImage", "vCEImage", "vyatta"]
|
||||
properties = {
|
||||
"Application-Name": "Vyatta",
|
||||
"Application-Type": "VCE",
|
||||
"Application-Vendor": "Brocade",
|
||||
"Application-Version": "3.5.R5.att-V6.0",
|
||||
"hw_vif_model": "VirtualVmxnet3",
|
||||
"OS": "Debian",
|
||||
"OS-Version": "7",
|
||||
"Post-Processing-Networking": "None",
|
||||
"Post-Processing-Tools": "None",
|
||||
"vmware-adaptertype": "ide",
|
||||
"vmware-disktype": "sparse"
|
||||
}
|
||||
post_body["tags"] = tags
|
||||
post_body["properties"] = properties
|
||||
@ -439,8 +450,8 @@ class TestTempestIms(ims_base.ImsBaseOrmTest):
|
||||
# verify image record created successfully
|
||||
_, body = self.client.get_image(image['id'])
|
||||
image = body["image"]
|
||||
self.assertListEqual(image["regions"][0]["tags"], tags)
|
||||
self.assertDictEqual(image["regions"][0]["properties"], properties)
|
||||
self.assertListEqual(image["tags"], tags)
|
||||
self.assertDictEqual(image["properties"], properties)
|
||||
|
||||
@decorators.idempotent_id('67aa7014-4dbb-4d66-bc7b-1a95a57494f8')
|
||||
def test_create_image_with_uuid(self):
|
||||
@ -460,36 +471,4 @@ class TestTempestIms(ims_base.ImsBaseOrmTest):
|
||||
# verify image record created successfully
|
||||
_, body = self.client.get_image(image['id'])
|
||||
image = body["image"]
|
||||
self.assertEqual(image["regions"][0]['id'], post_body['id'])
|
||||
|
||||
@decorators.idempotent_id('ae1223b5-cb75-442b-82eb-488969acc978')
|
||||
def test_create_image_with_region_group(self):
|
||||
|
||||
# grab image details needed for image build
|
||||
post_body = self._get_image_params()
|
||||
# define a region group
|
||||
region_group = {"name": "NCLargetest", "type": "group"}
|
||||
# add region_group to regions in image
|
||||
post_body["regions"].append(region_group)
|
||||
|
||||
# add image to tempest cleanup
|
||||
self.addCleanup(
|
||||
self._del_img_validate_deletion_on_dcp_and_lcp,
|
||||
post_body['id'])
|
||||
|
||||
# call client create_IMAGE and wait till status equals 'Success'
|
||||
_, body = self.client.create_image(**post_body)
|
||||
|
||||
# set object to built image and wait until it is ready for use
|
||||
image = body["image"]
|
||||
self._wait_for_image_status_on_dcp(image['id'], 'Success')
|
||||
|
||||
# verify image record created successfully
|
||||
_, body = self.client.get_image(image['id'])
|
||||
image = body["image"]
|
||||
# Aggregate Status
|
||||
self.assertEqual(image["status"], 'Success')
|
||||
# Region Status
|
||||
self.assertEqual(image["regions"][1]["status"], 'Success')
|
||||
# region group
|
||||
self.assertDictEqual(image["regions"][1]["name"], "NCLargetest")
|
||||
self.assertEqual(image['id'], post_body['id'])
|
||||
|
Loading…
x
Reference in New Issue
Block a user