]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Check for invalid Fn::FindInMap key
authorSteven Dake <sdake@redhat.com>
Fri, 11 May 2012 15:33:13 +0000 (08:33 -0700)
committerSteven Dake <sdake@redhat.com>
Fri, 11 May 2012 15:33:13 +0000 (08:33 -0700)
Partially Fixes Issue #111

Signed-off-by: Steven Dake <sdake@redhat.com>
heat/engine/manager.py

index 366525a85a95a0af54b04f796c71b18d2c2bfb5b..475c7fff7f6ea1096c0def140ee7e24964022984 100644 (file)
@@ -175,7 +175,16 @@ class EngineManager(manager.Manager):
             msg = _("No Template provided.")
             return webob.exc.HTTPBadRequest(explanation=msg)
 
-        s = parser.Stack('validate', template, 0, params)
+        try:
+            s = parser.Stack('validate', template, 0, params)
+        except KeyError:
+            res = 'A Fn::FindInMap operation referenced a non-existent map [%s]' % sys.exc_value
+
+            response = {'ValidateTemplateResult': {
+                        'Description': 'Malformed Query Response [%s]' % (res),
+                        'Parameters': []}}
+            return response
+
         res = s.validate()
 
         return res