Assert DELETE_COMPLETE on all stack delete cleanup
Currently stacks are deleted on integration test cleanup but no polling is done for DELETE_COMPLETE, so the test will pass even though the stack may be in a DELETE_FAILED state. This change uses _stack_delete for all cleanup stack deleting, which polls for complete. Change-Id: Ic44b27130596cf3fa8616608a091b683ea131e0b Closes-Bug: #1486303
This commit is contained in:
@@ -426,7 +426,7 @@ class HeatIntegrationTest(testscenarios.WithScenarios,
|
||||
tags=tags
|
||||
)
|
||||
if expected_status not in ['ROLLBACK_COMPLETE'] and enable_cleanup:
|
||||
self.addCleanup(self.client.stacks.delete, name)
|
||||
self.addCleanup(self._stack_delete, name)
|
||||
|
||||
stack = self.client.stacks.get(name)
|
||||
stack_identifier = '%s/%s' % (name, stack.id)
|
||||
@@ -458,7 +458,7 @@ class HeatIntegrationTest(testscenarios.WithScenarios,
|
||||
environment=env,
|
||||
adopt_stack_data=adopt_data,
|
||||
)
|
||||
self.addCleanup(self.client.stacks.delete, name)
|
||||
self.addCleanup(self._stack_delete, name)
|
||||
|
||||
stack = self.client.stacks.get(name)
|
||||
stack_identifier = '%s/%s' % (name, stack.id)
|
||||
@@ -468,7 +468,7 @@ class HeatIntegrationTest(testscenarios.WithScenarios,
|
||||
def stack_abandon(self, stack_id):
|
||||
if (self.conf.skip_test_stack_action_list and
|
||||
'ABANDON' in self.conf.skip_test_stack_action_list):
|
||||
self.addCleanup(self.client.stacks.delete, stack_id)
|
||||
self.addCleanup(self._stack_delete, stack_id)
|
||||
self.skipTest('Testing Stack abandon disabled in conf, skipping')
|
||||
info = self.client.stacks.abandon(stack_id=stack_id)
|
||||
return info
|
||||
@@ -476,7 +476,7 @@ class HeatIntegrationTest(testscenarios.WithScenarios,
|
||||
def stack_suspend(self, stack_identifier):
|
||||
if (self.conf.skip_test_stack_action_list and
|
||||
'SUSPEND' in self.conf.skip_test_stack_action_list):
|
||||
self.addCleanup(self.client.stacks.delete, stack_identifier)
|
||||
self.addCleanup(self._stack_delete, stack_identifier)
|
||||
self.skipTest('Testing Stack suspend disabled in conf, skipping')
|
||||
stack_name = stack_identifier.split('/')[0]
|
||||
self.client.actions.suspend(stack_name)
|
||||
@@ -488,7 +488,7 @@ class HeatIntegrationTest(testscenarios.WithScenarios,
|
||||
def stack_resume(self, stack_identifier):
|
||||
if (self.conf.skip_test_stack_action_list and
|
||||
'RESUME' in self.conf.skip_test_stack_action_list):
|
||||
self.addCleanup(self.client.stacks.delete, stack_identifier)
|
||||
self.addCleanup(self._stack_delete, stack_identifier)
|
||||
self.skipTest('Testing Stack resume disabled in conf, skipping')
|
||||
stack_name = stack_identifier.split('/')[0]
|
||||
self.client.actions.resume(stack_name)
|
||||
|
||||
@@ -235,7 +235,7 @@ class AutoscalingGroupBasicTest(AutoscalingGroupTest):
|
||||
parameters={},
|
||||
environment=env
|
||||
)
|
||||
self.addCleanup(self.client.stacks.delete, stack_name)
|
||||
self.addCleanup(self._stack_delete, stack_name)
|
||||
stack = self.client.stacks.get(stack_name)
|
||||
stack_identifier = '%s/%s' % (stack_name, stack.id)
|
||||
self._wait_for_stack_status(stack_identifier, 'CREATE_FAILED')
|
||||
|
||||
@@ -16,19 +16,7 @@ import keystoneclient
|
||||
from heat_integrationtests.functional import functional_base
|
||||
|
||||
|
||||
class ConditionalExposureTestBase(functional_base.FunctionalTestsBase):
|
||||
def setUp(self):
|
||||
super(ConditionalExposureTestBase, self).setUp()
|
||||
|
||||
def _delete(self, stack_name):
|
||||
stacks = self.client.stacks.list()
|
||||
for s in stacks:
|
||||
if s.stack_name == stack_name:
|
||||
self._stack_delete(s.identifier)
|
||||
break
|
||||
|
||||
|
||||
class ServiceBasedExposureTest(ConditionalExposureTestBase):
|
||||
class ServiceBasedExposureTest(functional_base.FunctionalTestsBase):
|
||||
# NOTE(pas-ha) if we ever decide to install Sahara on Heat
|
||||
# functional gate, this must be changed to other not-installed
|
||||
# but in principle supported service
|
||||
@@ -72,7 +60,6 @@ resources:
|
||||
|
||||
def test_unavailable_resources_not_created(self):
|
||||
stack_name = self._stack_rand_name()
|
||||
self.addCleanup(self._delete, stack_name)
|
||||
ex = self.assertRaises(exc.HTTPBadRequest,
|
||||
self.client.stacks.create,
|
||||
stack_name=stack_name,
|
||||
|
||||
@@ -225,7 +225,7 @@ class InstanceGroupBasicTest(InstanceGroupTest):
|
||||
parameters={},
|
||||
environment=env
|
||||
)
|
||||
self.addCleanup(self.client.stacks.delete, stack_name)
|
||||
self.addCleanup(self._stack_delete, stack_name)
|
||||
stack = self.client.stacks.get(stack_name)
|
||||
stack_identifier = '%s/%s' % (stack_name, stack.id)
|
||||
self._wait_for_stack_status(stack_identifier, 'CREATE_FAILED')
|
||||
|
||||
Reference in New Issue
Block a user