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):
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
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