From: Chris Alfonso Date: Fri, 4 May 2012 18:53:17 +0000 (-0400) Subject: Moving key validation into instance validate X-Git-Tag: 2014.1~1879 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=247266e7bc65550b87f90ecfb2cb1c5a9e5efc0b;p=openstack-build%2Fheat-build.git Moving key validation into instance validate --- diff --git a/heat/engine/instance.py b/heat/engine/instance.py index 9ff1e75d..9a39c32d 100644 --- a/heat/engine/instance.py +++ b/heat/engine/instance.py @@ -195,8 +195,18 @@ class Instance(Resource): def validate(self): ''' - Validate the server's ip address + Validate any of the provided params ''' + #check validity of key + if self.stack.parms['KeyName']: + keypairs = self.nova().keypairs.list() + valid_key = False + for k in keypairs: + if k.name == self.stack.parms['KeyName'].get('Value'): + valid_key = True + if not valid_key: + return {'Error': \ + 'Provided KeyName is not registered with nova'} return None def reload(self): diff --git a/heat/engine/manager.py b/heat/engine/manager.py index 3f3b58e5..262356d2 100644 --- a/heat/engine/manager.py +++ b/heat/engine/manager.py @@ -122,19 +122,9 @@ class EngineManager(manager.Manager): return {'Error': 'Stack already exists with that name.'} stack = parser.Stack(stack_name, template, 0, params) - stack._apply_user_parameters(params) - validator = resources.Resource('validate', template, stack) - #check validity of key - if stack.parms['KeyName']: - keypairs = validator.nova().keypairs.list() - valid_key = False - for k in keypairs: - if k.name == stack.parms['KeyName'].get('Value'): - valid_key = True - if not valid_key: - return {'Error': \ - 'Provided KeyName is not registered with nova'} - + response = stack.validate() + if 'Malformed Query Response' in response['ValidateTemplateResult']['Description']: + return response['ValidateTemplateResult']['Description'] rt = {} rt['template'] = template rt['stack_name'] = stack_name diff --git a/heat/engine/parser.py b/heat/engine/parser.py index 05d4df1e..c7268bd7 100644 --- a/heat/engine/parser.py +++ b/heat/engine/parser.py @@ -115,16 +115,14 @@ class Stack(object): order = self.get_create_order() response = None - for r in order: try: res = self.resources[r].validate() if res: - print 'setting response' response = {'ValidateTemplateResult': { 'Description': 'Malformed Query Response [%s]' % res, 'Parameters': []}} - break + return response except Exception as ex: logger.exception('validate') failed = True