]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Moving key validation into instance validate
authorChris Alfonso <calfonso@redhat.com>
Fri, 4 May 2012 18:53:17 +0000 (14:53 -0400)
committerChris Alfonso <calfonso@redhat.com>
Fri, 4 May 2012 18:54:48 +0000 (14:54 -0400)
heat/engine/instance.py
heat/engine/manager.py
heat/engine/parser.py

index 9ff1e75d9648be2b556aa0ad84023d5a91fe0109..9a39c32d7e5ecde41b3002b0397e0aea112cbb34 100644 (file)
@@ -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):
index 3f3b58e511acac91c106f870fe805dcd5a8ab406..262356d2fa54fbcef4105abb7c0ee4f1813099a1 100644 (file)
@@ -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
index 05d4df1e2cc0eb12bd8890f3378cd2807dbe6977..c7268bd74769bf10ce12fcc74955038d16357450 100644 (file)
@@ -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