Validate template parameter attributes

Validate that template parameter is provided with at least one attribute.

Closes-Bug: #1227061

Change-Id: I5e245556c21a1ea800eb9e0346f3b2414ad56183
This commit is contained in:
Sahdev Zala
2013-10-12 22:32:45 -05:00
parent 6f26ac6e70
commit 782c5d939a
5 changed files with 28 additions and 0 deletions

View File

@@ -355,6 +355,7 @@ class Parameters(collections.Mapping):
yield Parameter(name, schema, value, validate_value)
self.tmpl = tmpl
self._validate_tmpl_parameters()
self._validate(user_params)
self.params = dict((p.name, p) for p in parameters())
@@ -393,3 +394,15 @@ class Parameters(collections.Mapping):
for param in user_params:
if param not in schemata:
raise exception.UnknownUserParameter(key=param)
def _validate_tmpl_parameters(self):
param = None
for key in self.tmpl.t.keys():
if key == 'Parameters' or key == 'parameters':
param = key
break
if param is not None:
template_params = self.tmpl.t[key]
for name, attrs in template_params.iteritems():
if not isinstance(attrs, dict):
raise exception.InvalidTemplateParameter(key=name)