From 74d3131415a26638c4e3cf0570ca5076de04b02d Mon Sep 17 00:00:00 2001 From: ricolin Date: Tue, 31 May 2016 00:28:52 +0800 Subject: [PATCH] Keep Trace Back in Exception While catching exception, we should use 'raise' directly if we parsing same exception to upper level. In this way, we will not losing trace back information. Change-Id: I9cb208bb355082907b789dffa8de28dd33c9f01d --- heat/engine/clients/os/barbican.py | 4 ++-- heat/engine/clients/os/mistral.py | 2 +- heat/engine/resource.py | 2 +- heat/engine/resources/openstack/senlin/policy.py | 2 +- heat/engine/resources/openstack/trove/os_database.py | 2 +- heat/engine/stack.py | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/heat/engine/clients/os/barbican.py b/heat/engine/clients/os/barbican.py index f3892a02ec..de7cb7ded2 100644 --- a/heat/engine/clients/os/barbican.py +++ b/heat/engine/clients/os/barbican.py @@ -62,7 +62,7 @@ class BarbicanClientPlugin(client_plugin.ClientPlugin): raise exception.EntityNotFound( entity="Secret", name=secret_ref) - raise ex + raise def get_container_by_ref(self, container_ref): try: @@ -73,7 +73,7 @@ class BarbicanClientPlugin(client_plugin.ClientPlugin): raise exception.EntityNotFound( entity="Container", name=container_ref) - raise ex + raise class SecretConstraint(constraints.BaseCustomConstraint): diff --git a/heat/engine/clients/os/mistral.py b/heat/engine/clients/os/mistral.py index 912d6d0c2d..50c9132ca7 100644 --- a/heat/engine/clients/os/mistral.py +++ b/heat/engine/clients/os/mistral.py @@ -59,7 +59,7 @@ class MistralClientPlugin(client_plugin.ClientPlugin): raise exception.EntityNotFound( entity="Workflow", name=workflow_identifier) - raise ex + raise class WorkflowConstraint(constraints.BaseCustomConstraint): diff --git a/heat/engine/resource.py b/heat/engine/resource.py index 57c8c7c309..c5a1931a81 100644 --- a/heat/engine/resource.py +++ b/heat/engine/resource.py @@ -1734,7 +1734,7 @@ class Resource(object): if self.client_plugin().is_not_found(ex): raise exception.EntityNotFound( entity='Resource', name=self.name) - raise ex + raise return resource_data def parse_live_resource_data(self, resource_properties, resource_data): diff --git a/heat/engine/resources/openstack/senlin/policy.py b/heat/engine/resources/openstack/senlin/policy.py index 5e4f6a6a61..b64313eacb 100644 --- a/heat/engine/resources/openstack/senlin/policy.py +++ b/heat/engine/resources/openstack/senlin/policy.py @@ -107,7 +107,7 @@ class Policy(resource.Resource): self.client_plugin().is_not_found(ex)): bd['finished'] = True else: - raise ex + raise def add_bindings(self, bindings): for bd in bindings: diff --git a/heat/engine/resources/openstack/trove/os_database.py b/heat/engine/resources/openstack/trove/os_database.py index b6764cd0c8..732aa0cf4d 100644 --- a/heat/engine/resources/openstack/trove/os_database.py +++ b/heat/engine/resources/openstack/trove/os_database.py @@ -500,7 +500,7 @@ class OSDBInstance(resource.Resource): LOG.warning(_LW("Unexpected instance state change " "during update. Retrying.")) return False - raise exc + raise return True def _update_name(self, instance, name): diff --git a/heat/engine/stack.py b/heat/engine/stack.py index 21196ba937..3fa9093f11 100644 --- a/heat/engine/stack.py +++ b/heat/engine/stack.py @@ -762,7 +762,7 @@ class Stack(collections.Mapping): if ignorable_errors and ex.error_code in ignorable_errors: result = None else: - raise ex + raise except AssertionError: raise except Exception as ex: