Merge "Delete created allocations"

This commit is contained in:
Zuul 2019-04-25 19:04:02 +00:00 committed by Gerrit Code Review
commit ae26e96f4b
2 changed files with 35 additions and 17 deletions

View File

@ -104,7 +104,7 @@ class BaseBaremetalTest(api_version_utils.BaseMicroversionTest,
cls.power_timeout = CONF.baremetal.power_timeout
cls.unprovision_timeout = CONF.baremetal.unprovision_timeout
cls.created_objects = {}
for resource in RESOURCE_TYPES:
for resource in RESOURCE_TYPES + ['allocation']:
cls.created_objects[resource] = set()
cls.deployed_nodes = set()
@ -122,6 +122,14 @@ class BaseBaremetalTest(api_version_utils.BaseMicroversionTest,
except lib_exc.BadRequest:
pass
# Delete allocations explicitly after unprovisioning instances, but
# before deleting nodes.
for allocation in cls.created_objects['allocation']:
try:
cls.client.delete_allocation(allocation)
except lib_exc.NotFound:
pass
for node in cls.created_objects['node']:
try:
cls.client.update_node(node, instance_uuid=None)
@ -452,3 +460,15 @@ class BaseBaremetalTest(api_version_utils.BaseMicroversionTest,
res=resource,
uuid=uuid)
self.assertEqual(expected_link, link)
@classmethod
@creates('allocation')
def create_allocation(cls, resource_class, **kwargs):
"""Wrapper utility for creating test allocations.
:param resource_class: Resource class to request.
:param kwargs: Other fields to pass.
:return: A tuple with the server response and the created allocation.
"""
resp, body = cls.client.create_allocation(resource_class, **kwargs)
return resp, body

View File

@ -46,7 +46,7 @@ class TestAllocations(base.BaseBaremetalTest):
@decorators.idempotent_id('9203ea28-3c61-4108-8498-22247b654ff6')
def test_create_show_allocation(self):
self.assertIsNone(self.node['allocation_uuid'])
_, body = self.client.create_allocation(self.resource_class)
_, body = self.create_allocation(self.resource_class)
uuid = body['uuid']
self.assertTrue(uuid)
@ -74,8 +74,8 @@ class TestAllocations(base.BaseBaremetalTest):
self.client.set_node_traits(node2['uuid'], ['CUSTOM_MEOW'])
self.provide_node(node2['uuid'])
_, body = self.client.create_allocation(self.resource_class,
traits=['CUSTOM_MEOW'])
_, body = self.create_allocation(self.resource_class,
traits=['CUSTOM_MEOW'])
uuid = body['uuid']
self.assertTrue(uuid)
@ -97,8 +97,8 @@ class TestAllocations(base.BaseBaremetalTest):
name=node_name)
self.provide_node(node2['uuid'])
_, body = self.client.create_allocation(self.resource_class,
candidate_nodes=[node_name])
_, body = self.create_allocation(self.resource_class,
candidate_nodes=[node_name])
uuid = body['uuid']
self.assertTrue(uuid)
@ -114,23 +114,21 @@ class TestAllocations(base.BaseBaremetalTest):
@decorators.idempotent_id('84eb3c21-4e16-4f33-9551-dce0f8689462')
def test_delete_allocation(self):
_, body = self.client.create_allocation(self.resource_class)
_, body = self.create_allocation(self.resource_class)
self.client.delete_allocation(body['uuid'])
self.assertRaises(lib_exc.NotFound, self.client.show_allocation,
body['uuid'])
@decorators.idempotent_id('5e30452d-ee92-4342-82c1-5eea5e55c937')
def test_delete_allocation_by_name(self):
_, body = self.client.create_allocation(self.resource_class,
name='banana')
_, body = self.create_allocation(self.resource_class, name='banana')
self.client.delete_allocation('banana')
self.assertRaises(lib_exc.NotFound, self.client.show_allocation,
'banana')
@decorators.idempotent_id('fbbc13bc-86da-438b-af01-d1bc1bab57d6')
def test_show_by_name(self):
_, body = self.client.create_allocation(self.resource_class,
name='banana')
_, body = self.create_allocation(self.resource_class, name='banana')
_, loaded_body = self.client.show_allocation('banana')
# The allocation will likely have been processed by this time, so do
# not compare the whole body.
@ -139,7 +137,7 @@ class TestAllocations(base.BaseBaremetalTest):
@decorators.idempotent_id('4ca123c4-160d-4d8d-a3f7-15feda812263')
def test_list_allocations(self):
_, body = self.client.create_allocation(self.resource_class)
_, body = self.create_allocation(self.resource_class)
_, listing = self.client.list_allocations()
self.assertIn(body['uuid'],
@ -152,8 +150,8 @@ class TestAllocations(base.BaseBaremetalTest):
@decorators.idempotent_id('092b7148-9ff0-4107-be57-2cfcd21eb5d7')
def test_list_allocations_by_state(self):
_, body = self.client.create_allocation(self.resource_class)
_, body2 = self.client.create_allocation(self.resource_class + 'foo2')
_, body = self.create_allocation(self.resource_class)
_, body2 = self.create_allocation(self.resource_class + 'foo2')
waiters.wait_for_allocation(self.client, body['uuid'])
waiters.wait_for_allocation(self.client, body2['uuid'],
@ -177,7 +175,7 @@ class TestAllocations(base.BaseBaremetalTest):
@decorators.attr(type=['negative'])
@decorators.idempotent_id('bf7e1375-019a-466a-a294-9c1052827ada')
def test_create_allocation_resource_class_mismatch(self):
_, body = self.client.create_allocation(self.resource_class + 'foo')
_, body = self.create_allocation(self.resource_class + 'foo')
_, body = waiters.wait_for_allocation(self.client, body['uuid'],
expect_error=True)
@ -187,7 +185,7 @@ class TestAllocations(base.BaseBaremetalTest):
@decorators.attr(type=['negative'])
@decorators.idempotent_id('b4eeddee-ca34-44f9-908b-490b78b18486')
def test_create_allocation_traits_mismatch(self):
_, body = self.client.create_allocation(
_, body = self.create_allocation(
self.resource_class, traits=['CUSTOM_DOES_NOT_EXIST'])
_, body = waiters.wait_for_allocation(self.client, body['uuid'],
@ -201,7 +199,7 @@ class TestAllocations(base.BaseBaremetalTest):
_, node2 = self.create_node(self.chassis['uuid'],
resource_class=self.resource_class + 'alt')
# Mismatch between the resource class and the candidate node
_, body = self.client.create_allocation(
_, body = self.create_allocation(
self.resource_class, candidate_nodes=[node2['uuid']])
_, body = waiters.wait_for_allocation(self.client, body['uuid'],