From 3af0fb67db69204f941ff78a385b85972879898d Mon Sep 17 00:00:00 2001 From: Chris Alfonso Date: Thu, 3 May 2012 15:06:20 -0400 Subject: [PATCH] Validating the KeyName against nova on stack_create Fixes Issue #98 --- heat/engine/manager.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/heat/engine/manager.py b/heat/engine/manager.py index ad9eee3e..a1430a28 100644 --- a/heat/engine/manager.py +++ b/heat/engine/manager.py @@ -26,7 +26,9 @@ import logging import webob from heat import manager from heat.engine import parser +from heat.engine import resources from heat.db import api as db_api + logger = logging.getLogger('heat.engine.manager') @@ -120,6 +122,19 @@ 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'} + rt = {} rt['template'] = template rt['stack_name'] = stack_name -- 2.45.2