From: Steven Dake Date: Fri, 11 May 2012 15:30:17 +0000 (-0700) Subject: Check for invalid Ref keys in validate X-Git-Tag: 2014.1~1850 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=bbed10f941e59c92775db845a6d6b97e1066063c;p=openstack-build%2Fheat-build.git Check for invalid Ref keys in validate Partially Fixes Issue #111 Signed-off-by: Steven Dake --- diff --git a/heat/engine/parser.py b/heat/engine/parser.py index a2828050..a8474556 100644 --- a/heat/engine/parser.py +++ b/heat/engine/parser.py @@ -16,6 +16,7 @@ import eventlet import json import logging +import sys from heat.common import exception from heat.engine import resources @@ -106,15 +107,23 @@ class Stack(object): def validate(self): ''' - If you are wondering where the actual validation is, me too. - it is just not obvious how to respond to validation failures. http://docs.amazonwebservices.com/AWSCloudFormation/latest/ \ APIReference/API_ValidateTemplate.html ''' - - order = self.get_create_order() + # TODO(sdake) Should return line number of invalid reference response = None + + try: + order = self.get_create_order() + except KeyError: + res = 'A Ref operation referenced a non-existent key [%s]' % sys.exc_value + + response = {'ValidateTemplateResult': { + 'Description': 'Malformed Query Response [%s]' % (res), + 'Parameters': []}} + return response + for r in order: try: res = self.resources[r].validate()