|
|
|
@ -45,34 +45,46 @@ class ParameterGroups(object):
|
|
|
|
|
LOG.debug(self.parameter_names)
|
|
|
|
|
if self.parameter_groups:
|
|
|
|
|
if not isinstance(self.parameter_groups, list):
|
|
|
|
|
raise exception.StackValidationFailed(message=_(
|
|
|
|
|
'The %s should be a list.') % PARAMETER_GROUPS)
|
|
|
|
|
raise exception.StackValidationFailed(
|
|
|
|
|
error=_('Parameter Groups error'),
|
|
|
|
|
path=[PARAMETER_GROUPS],
|
|
|
|
|
message=_('The %s should be a list.') % PARAMETER_GROUPS)
|
|
|
|
|
|
|
|
|
|
# Loop through groups and validate parameters
|
|
|
|
|
grouped_parameters = []
|
|
|
|
|
for group in self.parameter_groups:
|
|
|
|
|
parameters = group.get(PARAMETERS)
|
|
|
|
|
if parameters is None:
|
|
|
|
|
raise exception.StackValidationFailed(message=_(
|
|
|
|
|
'The %s must be provided for '
|
|
|
|
|
'each parameter group.') % PARAMETERS)
|
|
|
|
|
raise exception.StackValidationFailed(
|
|
|
|
|
error=_('Parameter Groups error'),
|
|
|
|
|
path=[PARAMETER_GROUPS, group.get('label')],
|
|
|
|
|
message=_('The %s must be provided for '
|
|
|
|
|
'each parameter group.') % PARAMETERS)
|
|
|
|
|
|
|
|
|
|
if not isinstance(parameters, list):
|
|
|
|
|
raise exception.StackValidationFailed(message=_(
|
|
|
|
|
'The %s of parameter group '
|
|
|
|
|
'should be a list.') % PARAMETERS)
|
|
|
|
|
raise exception.StackValidationFailed(
|
|
|
|
|
error=_('Parameter Groups error'),
|
|
|
|
|
path=[PARAMETER_GROUPS, group.get('label')],
|
|
|
|
|
message=_('The %s of parameter group '
|
|
|
|
|
'should be a list.') % PARAMETERS)
|
|
|
|
|
|
|
|
|
|
for param in parameters:
|
|
|
|
|
# Check if param has been added to a previous group
|
|
|
|
|
if param in grouped_parameters:
|
|
|
|
|
raise exception.StackValidationFailed(message=_(
|
|
|
|
|
'The %s parameter must be assigned to one '
|
|
|
|
|
'parameter group only.') % param)
|
|
|
|
|
raise exception.StackValidationFailed(
|
|
|
|
|
error=_('Parameter Groups error'),
|
|
|
|
|
path=[PARAMETER_GROUPS, group.get('label')],
|
|
|
|
|
message=_(
|
|
|
|
|
'The %s parameter must be assigned to one '
|
|
|
|
|
'parameter group only.') % param)
|
|
|
|
|
else:
|
|
|
|
|
grouped_parameters.append(param)
|
|
|
|
|
|
|
|
|
|
# Check that grouped parameter references a valid Parameter
|
|
|
|
|
if param not in self.parameter_names:
|
|
|
|
|
raise exception.StackValidationFailed(message=_(
|
|
|
|
|
'The grouped parameter %s does not reference '
|
|
|
|
|
'a valid parameter.') % param)
|
|
|
|
|
raise exception.StackValidationFailed(
|
|
|
|
|
error=_('Parameter Groups error'),
|
|
|
|
|
path=[PARAMETER_GROUPS, group.get('label')],
|
|
|
|
|
message=_(
|
|
|
|
|
'The grouped parameter %s does not reference '
|
|
|
|
|
'a valid parameter.') % param)
|
|
|
|
|