Merge "Improve StackValidationFailed resp param_groups"

This commit is contained in:
Jenkins 2015-06-14 23:56:24 +00:00 committed by Gerrit Code Review
commit 79b1e3070a
2 changed files with 42 additions and 21 deletions

View File

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

View File

@ -1407,8 +1407,11 @@ class validateTest(common.HeatTestCase):
exc = self.assertRaises(exception.StackValidationFailed, exc = self.assertRaises(exception.StackValidationFailed,
stack.validate) stack.validate)
self.assertEqual(_('The InstanceType parameter must be assigned to ' self.assertEqual(_('Parameter Groups error : '
'one parameter group only.'), six.text_type(exc)) 'parameter_groups.Database '
'Group: The InstanceType parameter must be '
'assigned to one parameter group only.'),
six.text_type(exc))
def test_validate_invalid_parameter_in_group(self): def test_validate_invalid_parameter_in_group(self):
t = template_format.parse(test_template_invalid_parameter_name) t = template_format.parse(test_template_invalid_parameter_name)
@ -1422,7 +1425,9 @@ class validateTest(common.HeatTestCase):
exc = self.assertRaises(exception.StackValidationFailed, exc = self.assertRaises(exception.StackValidationFailed,
stack.validate) stack.validate)
self.assertEqual(_('The grouped parameter SomethingNotHere does not ' self.assertEqual(_('Parameter Groups error : '
'parameter_groups.Database Group: The grouped '
'parameter SomethingNotHere does not '
'reference a valid parameter.'), 'reference a valid parameter.'),
six.text_type(exc)) six.text_type(exc))
@ -1433,7 +1438,8 @@ class validateTest(common.HeatTestCase):
exc = self.assertRaises(exception.StackValidationFailed, exc = self.assertRaises(exception.StackValidationFailed,
stack.validate) stack.validate)
self.assertEqual(_('The parameters must be provided for each ' self.assertEqual(_('Parameter Groups error : parameter_groups.Server '
'Group: The parameters must be provided for each '
'parameter group.'), six.text_type(exc)) 'parameter group.'), six.text_type(exc))
def test_validate_parameter_groups_not_list(self): def test_validate_parameter_groups_not_list(self):
@ -1443,7 +1449,8 @@ class validateTest(common.HeatTestCase):
exc = self.assertRaises(exception.StackValidationFailed, exc = self.assertRaises(exception.StackValidationFailed,
stack.validate) stack.validate)
self.assertEqual(_('The parameter_groups should be ' self.assertEqual(_('Parameter Groups error : parameter_groups: '
'The parameter_groups should be '
'a list.'), six.text_type(exc)) 'a list.'), six.text_type(exc))
def test_validate_parameters_not_list(self): def test_validate_parameters_not_list(self):
@ -1453,7 +1460,9 @@ class validateTest(common.HeatTestCase):
exc = self.assertRaises(exception.StackValidationFailed, exc = self.assertRaises(exception.StackValidationFailed,
stack.validate) stack.validate)
self.assertEqual(_('The parameters of parameter group should be ' self.assertEqual(_('Parameter Groups error : '
'parameter_groups.Server Group: '
'The parameters of parameter group should be '
'a list.'), six.text_type(exc)) 'a list.'), six.text_type(exc))
def test_validate_allowed_values_integer(self): def test_validate_allowed_values_integer(self):