Fix default template for AWS::CloudWatch::Alarm with Ceilometer
Existing template assumes certain parameters to be delimited strings rather than lists and uses 'Fn::Split' to convert them to list. However, delimitedstring representations of parameters are by default converted to list for CommaDelimitedList types. Also includes change for CommaDelimitedList to accept empty string. Change-Id: Ib566f1d098c575a80c4f1a975eaaaac93d70af34 Closes-Bug: #1316842
This commit is contained in:
parent
61bd5f30f2
commit
ce62bdc192
@ -73,14 +73,14 @@ Resources:
|
||||
threshold:
|
||||
Ref: Threshold
|
||||
alarm_actions:
|
||||
"Fn::Split": [",", {Ref: AlarmActions}]
|
||||
Ref: AlarmActions
|
||||
ok_actions:
|
||||
"Fn::Split": [",", {Ref: OKActions}]
|
||||
Ref: OKActions
|
||||
insufficient_data_actions:
|
||||
"Fn::Split": [",", {Ref: InsufficientDataActions}]
|
||||
Ref: InsufficientDataActions
|
||||
statistic:
|
||||
"Fn::FindInMap": [StatisticMap, {Ref: Statistic}, Ceilometer]
|
||||
comparison_operator:
|
||||
"Fn::FindInMap": [ComparisonOperatorMap, {Ref: ComparisonOperator}, Ceilometer]
|
||||
matching_metadata:
|
||||
"Fn::MemberListToMap": [Name, Value, {"Fn::Split": [",", {Ref: Dimensions}]}]
|
||||
"Fn::MemberListToMap": [Name, Value, {Ref: Dimensions}]
|
||||
|
@ -316,9 +316,8 @@ class CommaDelimitedListParam(Parameter, collections.Sequence):
|
||||
# only parse when value is not already a list
|
||||
if isinstance(value, list):
|
||||
return value
|
||||
|
||||
try:
|
||||
if value:
|
||||
if value is not None:
|
||||
return value.split(',')
|
||||
except (KeyError, AttributeError) as err:
|
||||
message = _('Value must be a comma-delimited list string: %s')
|
||||
|
@ -224,6 +224,12 @@ class ParameterTest(testtools.TestCase):
|
||||
self.new_parameter, 'p', schema, '2')
|
||||
self.assertIn('wibble', str(err))
|
||||
|
||||
def test_list_value_list_default_empty(self):
|
||||
schema = {'Type': 'CommaDelimitedList'}
|
||||
schema['Default'] = ''
|
||||
p = self.new_parameter('p', schema)
|
||||
self.assertEqual([''], p.value())
|
||||
|
||||
def test_list_value_list_good(self):
|
||||
schema = {'Type': 'CommaDelimitedList',
|
||||
'AllowedValues': ['foo', 'bar', 'baz']}
|
||||
|
Loading…
Reference in New Issue
Block a user