summaryrefslogtreecommitdiff
path: root/heat/engine/translation.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-03-11 15:47:54 +0000
committerGerrit Code Review <review@openstack.org>2016-03-11 15:47:55 +0000
commit575af8dfcb86985ad3dac796336fd7d8d8110d2c (patch)
tree78ac76ddba32c477ab60fbb531346903ef8d89fc /heat/engine/translation.py
parent6cda055593a97398a511cf3a37213fcfae52b0fd (diff)
parenta7d63111a386895a62147d70ead5f2b46fea52d6 (diff)
downloadheat-575af8dfcb86985ad3dac796336fd7d8d8110d2c.tar.gz
Merge "Fix stack preview"
Diffstat (limited to 'heat/engine/translation.py')
-rw-r--r--heat/engine/translation.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/heat/engine/translation.py b/heat/engine/translation.py
index ec5b6bd1a..d890da54c 100644
--- a/heat/engine/translation.py
+++ b/heat/engine/translation.py
@@ -11,6 +11,9 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_utils import encodeutils
+
+from heat.common import exception
from heat.common.i18n import _
from heat.engine.cfn import functions as cfn_funcs
from heat.engine import function
@@ -154,7 +157,14 @@ class TranslationRule(object):
if isinstance(param, hot_funcs.Removed):
raise AttributeError(_('Property uses removed function.'))
if isinstance(param, (hot_funcs.GetParam, cfn_funcs.ParamRef)):
- return function.resolve(param)
+ try:
+ return function.resolve(param)
+ except exception.UserParameterMissing as ex:
+ # We can't resolve parameter now. Abort translation.
+ err_msg = encodeutils.exception_to_unicode(ex)
+ raise AttributeError(
+ _('Can not resolve parameter '
+ 'due to: %s') % err_msg)
elif isinstance(param, list):
return [resolve_param(param_item) for param_item in param]
else: