Fix logging during delete stack
*Wrap resource.Resource.destroy Change-Id: I9295870c95fe0cbd95107cb41d387a8da98287ec Closes-Bug: #1339759
This commit is contained in:
@@ -1175,8 +1175,12 @@ class Stack(collections.Mapping):
|
|||||||
e.args[0] if e.args else
|
e.args[0] if e.args else
|
||||||
'Failed stack pre-ops: %s' % six.text_type(e))
|
'Failed stack pre-ops: %s' % six.text_type(e))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def destroy_resource(stack_resource):
|
||||||
|
return stack_resource.destroy()
|
||||||
|
|
||||||
action_task = scheduler.DependencyTaskGroup(self.dependencies,
|
action_task = scheduler.DependencyTaskGroup(self.dependencies,
|
||||||
resource.Resource.destroy,
|
destroy_resource,
|
||||||
reverse=True)
|
reverse=True)
|
||||||
try:
|
try:
|
||||||
scheduler.TaskRunner(action_task)(timeout=self.timeout_secs())
|
scheduler.TaskRunner(action_task)(timeout=self.timeout_secs())
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
import copy
|
import copy
|
||||||
|
import fixtures
|
||||||
|
import logging
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from keystoneclient import exceptions as kc_exceptions
|
from keystoneclient import exceptions as kc_exceptions
|
||||||
@@ -421,6 +423,23 @@ class StackTest(common.HeatTestCase):
|
|||||||
self.assertEqual('Resource DELETE failed: Exception: foo',
|
self.assertEqual('Resource DELETE failed: Exception: foo',
|
||||||
self.stack.status_reason)
|
self.stack.status_reason)
|
||||||
|
|
||||||
|
def test_delete_stack_with_resource_log_is_clear(self):
|
||||||
|
debug_logger = self.useFixture(
|
||||||
|
fixtures.FakeLogger(level=logging.DEBUG,
|
||||||
|
format="%(levelname)8s [%(name)s] %("
|
||||||
|
"message)s"))
|
||||||
|
tmpl = {'HeatTemplateFormatVersion': '2012-12-12',
|
||||||
|
'Resources': {'AResource': {'Type': 'GenericResourceType'}}}
|
||||||
|
self.stack = stack.Stack(self.ctx, 'delete_log_test',
|
||||||
|
template.Template(tmpl))
|
||||||
|
self.stack.store()
|
||||||
|
self.stack.create()
|
||||||
|
self.assertEqual((self.stack.CREATE, self.stack.COMPLETE),
|
||||||
|
self.stack.state)
|
||||||
|
self.stack.delete()
|
||||||
|
self.assertNotIn("destroy from None running",
|
||||||
|
debug_logger.output)
|
||||||
|
|
||||||
def test_stack_user_project_id_delete_fail(self):
|
def test_stack_user_project_id_delete_fail(self):
|
||||||
|
|
||||||
class FakeKeystoneClientFail(fakes.FakeKeystoneClient):
|
class FakeKeystoneClientFail(fakes.FakeKeystoneClient):
|
||||||
|
|||||||
Reference in New Issue
Block a user