diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-03-11 15:47:54 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-03-11 15:47:55 +0000 |
commit | 575af8dfcb86985ad3dac796336fd7d8d8110d2c (patch) | |
tree | 78ac76ddba32c477ab60fbb531346903ef8d89fc /heat/engine/translation.py | |
parent | 6cda055593a97398a511cf3a37213fcfae52b0fd (diff) | |
parent | a7d63111a386895a62147d70ead5f2b46fea52d6 (diff) | |
download | heat-575af8dfcb86985ad3dac796336fd7d8d8110d2c.tar.gz |
Merge "Fix stack preview"
Diffstat (limited to 'heat/engine/translation.py')
-rw-r--r-- | heat/engine/translation.py | 12 |
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: |