Fix validation error for parameter group
Fix bug introduced by change I2b1b096b314b52b2a51d09c47c46b902e6647c59 Change-Id: I9cda70f60c3c7651e433f9464ea5926d64659721 Closes-Bug: #1465110
This commit is contained in:
parent
5ed6f96858
commit
bb15fcc3be
|
@ -57,14 +57,14 @@ class ParameterGroups(object):
|
|||
if parameters is None:
|
||||
raise exception.StackValidationFailed(
|
||||
error=_('Parameter Groups error'),
|
||||
path=[PARAMETER_GROUPS, group.get('label')],
|
||||
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(
|
||||
error=_('Parameter Groups error'),
|
||||
path=[PARAMETER_GROUPS, group.get('label')],
|
||||
path=[PARAMETER_GROUPS, group.get('label', '')],
|
||||
message=_('The %s of parameter group '
|
||||
'should be a list.') % PARAMETERS)
|
||||
|
||||
|
@ -73,7 +73,7 @@ class ParameterGroups(object):
|
|||
if param in grouped_parameters:
|
||||
raise exception.StackValidationFailed(
|
||||
error=_('Parameter Groups error'),
|
||||
path=[PARAMETER_GROUPS, group.get('label')],
|
||||
path=[PARAMETER_GROUPS, group.get('label', '')],
|
||||
message=_(
|
||||
'The %s parameter must be assigned to one '
|
||||
'parameter group only.') % param)
|
||||
|
@ -84,7 +84,7 @@ class ParameterGroups(object):
|
|||
if param not in self.parameter_names:
|
||||
raise exception.StackValidationFailed(
|
||||
error=_('Parameter Groups error'),
|
||||
path=[PARAMETER_GROUPS, group.get('label')],
|
||||
path=[PARAMETER_GROUPS, group.get('label', '')],
|
||||
message=_(
|
||||
'The grouped parameter %s does not reference '
|
||||
'a valid parameter.') % param)
|
||||
|
|
|
@ -773,6 +773,58 @@ resources:
|
|||
type: OS::Nova::Server
|
||||
'''
|
||||
|
||||
test_template_parameters_error_no_label = '''
|
||||
heat_template_version: 2013-05-23
|
||||
|
||||
description: >
|
||||
Hello world HOT template that just defines a single compute instance.
|
||||
Contains just base features to verify base HOT support.
|
||||
|
||||
parameter_groups:
|
||||
- parameters:
|
||||
key_name: heat_key
|
||||
resources:
|
||||
server:
|
||||
type: OS::Nova::Server
|
||||
'''
|
||||
|
||||
test_template_parameters_duplicate_no_label = '''
|
||||
heat_template_version: 2013-05-23
|
||||
|
||||
description: >
|
||||
Hello world HOT template that just defines a single compute instance.
|
||||
Contains just base features to verify base HOT support.
|
||||
|
||||
parameters:
|
||||
key_name:
|
||||
type: string
|
||||
description: Name of an existing key pair to use for the instance
|
||||
default: heat_key
|
||||
parameter_groups:
|
||||
- parameters:
|
||||
- key_name
|
||||
- parameters:
|
||||
- key_name
|
||||
resources:
|
||||
server:
|
||||
type: OS::Nova::Server
|
||||
'''
|
||||
|
||||
test_template_invalid_parameter_no_label = '''
|
||||
heat_template_version: 2013-05-23
|
||||
|
||||
description: >
|
||||
Hello world HOT template that just defines a single compute instance.
|
||||
Contains just base features to verify base HOT support.
|
||||
|
||||
parameter_groups:
|
||||
- parameters:
|
||||
- key_name
|
||||
resources:
|
||||
server:
|
||||
type: OS::Nova::Server
|
||||
'''
|
||||
|
||||
test_template_allowed_integers = '''
|
||||
heat_template_version: 2013-05-23
|
||||
|
||||
|
@ -851,9 +903,9 @@ outputs:
|
|||
'''
|
||||
|
||||
|
||||
class validateTest(common.HeatTestCase):
|
||||
class ValidateTest(common.HeatTestCase):
|
||||
def setUp(self):
|
||||
super(validateTest, self).setUp()
|
||||
super(ValidateTest, self).setUp()
|
||||
resources.initialise()
|
||||
self.fc = fakes_nova.FakeClient()
|
||||
self.gc = fakes_nova.FakeClient()
|
||||
|
@ -1413,6 +1465,19 @@ class validateTest(common.HeatTestCase):
|
|||
'assigned to one parameter group only.'),
|
||||
six.text_type(exc))
|
||||
|
||||
def test_validate_duplicate_parameters_no_label(self):
|
||||
t = template_format.parse(test_template_parameters_duplicate_no_label)
|
||||
template = hot_tmpl.HOTemplate20130523(t)
|
||||
stack = parser.Stack(self.ctx, 'test_stack', template)
|
||||
exc = self.assertRaises(exception.StackValidationFailed,
|
||||
stack.validate)
|
||||
|
||||
self.assertEqual(_('Parameter Groups error: '
|
||||
'parameter_groups.: '
|
||||
'The key_name parameter must be '
|
||||
'assigned to one parameter group only.'),
|
||||
six.text_type(exc))
|
||||
|
||||
def test_validate_invalid_parameter_in_group(self):
|
||||
t = template_format.parse(test_template_invalid_parameter_name)
|
||||
template = hot_tmpl.HOTemplate20130523(t,
|
||||
|
@ -1431,6 +1496,20 @@ class validateTest(common.HeatTestCase):
|
|||
'reference a valid parameter.'),
|
||||
six.text_type(exc))
|
||||
|
||||
def test_validate_invalid_parameter_no_label(self):
|
||||
t = template_format.parse(test_template_invalid_parameter_no_label)
|
||||
template = hot_tmpl.HOTemplate20130523(t)
|
||||
stack = parser.Stack(self.ctx, 'test_stack', template)
|
||||
|
||||
exc = self.assertRaises(exception.StackValidationFailed,
|
||||
stack.validate)
|
||||
|
||||
self.assertEqual(_('Parameter Groups error: '
|
||||
'parameter_groups.: The grouped '
|
||||
'parameter key_name does not '
|
||||
'reference a valid parameter.'),
|
||||
six.text_type(exc))
|
||||
|
||||
def test_validate_no_parameters_in_group(self):
|
||||
t = template_format.parse(test_template_no_parameters)
|
||||
template = hot_tmpl.HOTemplate20130523(t)
|
||||
|
@ -1465,6 +1544,17 @@ class validateTest(common.HeatTestCase):
|
|||
'The parameters of parameter group should be '
|
||||
'a list.'), six.text_type(exc))
|
||||
|
||||
def test_validate_parameters_error_no_label(self):
|
||||
t = template_format.parse(test_template_parameters_error_no_label)
|
||||
template = hot_tmpl.HOTemplate20130523(t)
|
||||
stack = parser.Stack(self.ctx, 'test_stack', template)
|
||||
exc = self.assertRaises(exception.StackValidationFailed,
|
||||
stack.validate)
|
||||
|
||||
self.assertEqual(_('Parameter Groups error: parameter_groups.: '
|
||||
'The parameters of parameter group should be '
|
||||
'a list.'), six.text_type(exc))
|
||||
|
||||
def test_validate_allowed_values_integer(self):
|
||||
t = template_format.parse(test_template_allowed_integers)
|
||||
template = tmpl.Template(t,
|
||||
|
|
Loading…
Reference in New Issue