Add more properties to trigger policy.
Currently monitoring policy in Tacker is not fully validated in tosca-parser. This made monitoring feature beoken in Tacker. Change-Id: Iebe961eb38e36ac55a212482596c2a30fd75f1c8
This commit is contained in:
parent
8ead56f0d0
commit
0b000ae4e8
|
@ -75,6 +75,32 @@ topology_template:
|
|||
inputs:
|
||||
strategy: LEAST_USED
|
||||
implementation: Senlin.webhook()
|
||||
high_cpu_usage:
|
||||
description: trigger
|
||||
meter_name: cpu_util
|
||||
condition:
|
||||
constraint: utilization greater_than 60%
|
||||
threshold: 60
|
||||
period: 600
|
||||
evaluations: 1
|
||||
method: average
|
||||
comparison_operator: gt
|
||||
metadata: SG1
|
||||
action: [SP1]
|
||||
|
||||
low_cpu_usage:
|
||||
description: trigger
|
||||
meter_name: cpu_util
|
||||
condition:
|
||||
constraint: utilization less_than 20%
|
||||
threshold: 20
|
||||
period: 600
|
||||
evaluations: 1
|
||||
method: average
|
||||
comparison_operator: gt
|
||||
metadata: SG1
|
||||
action: [SP1]
|
||||
|
||||
- my_groups_placement:
|
||||
type: mycompany.mytypes.myScalingPolicy
|
||||
targets: [ webserver_group ]
|
||||
|
|
|
@ -1581,7 +1581,7 @@ heat-translator/master/translator/tests/data/custom_types/wordpress.yaml
|
|||
lambda: Policy(name, policies[name], None, None))
|
||||
self.assertEqual(expectedmessage, err.__str__())
|
||||
|
||||
def test_policy_trigger_valid_keyname(self):
|
||||
def test_policy_trigger_valid_keyname_senlin_resources(self):
|
||||
tpl_snippet = '''
|
||||
triggers:
|
||||
- resize_compute:
|
||||
|
@ -1610,7 +1610,28 @@ heat-translator/master/translator/tests/data/custom_types/wordpress.yaml
|
|||
name = list(triggers.keys())[0]
|
||||
Triggers(name, triggers[name])
|
||||
|
||||
def test_policy_trigger_invalid_keyname(self):
|
||||
def test_policy_trigger_valid_keyname_heat_resources(self):
|
||||
tpl_snippet = '''
|
||||
triggers:
|
||||
- high_cpu_usage:
|
||||
description: trigger
|
||||
meter_name: cpu_util
|
||||
condition:
|
||||
constraint: utilization greater_than 60%
|
||||
threshold: 60
|
||||
period: 600
|
||||
evaluations: 1
|
||||
method: average
|
||||
comparison_operator: gt
|
||||
metadata: SG1
|
||||
action: [SP1]
|
||||
'''
|
||||
triggers = (toscaparser.utils.yamlparser.
|
||||
simple_parse(tpl_snippet))['triggers'][0]
|
||||
name = list(triggers.keys())[0]
|
||||
Triggers(name, triggers[name])
|
||||
|
||||
def test_policy_trigger_invalid_keyname_senlin_resources(self):
|
||||
tpl_snippet = '''
|
||||
triggers:
|
||||
- resize_compute:
|
||||
|
@ -1646,6 +1667,34 @@ heat-translator/master/translator/tests/data/custom_types/wordpress.yaml
|
|||
lambda: Triggers(name, triggers[name]))
|
||||
self.assertEqual(expectedmessage, err.__str__())
|
||||
|
||||
def test_policy_trigger_invalid_keyname_heat_resources(self):
|
||||
tpl_snippet = '''
|
||||
triggers:
|
||||
- high_cpu_usage:
|
||||
description: trigger
|
||||
meter_name: cpu_util
|
||||
condition:
|
||||
constraint: utilization greater_than 60%
|
||||
threshold: 60
|
||||
period: 600
|
||||
evaluations: 1
|
||||
method: average
|
||||
comparison_operator: gt
|
||||
metadata1: SG1
|
||||
action: [SP1]
|
||||
'''
|
||||
triggers = (toscaparser.utils.yamlparser.
|
||||
simple_parse(tpl_snippet))['triggers'][0]
|
||||
name = list(triggers.keys())[0]
|
||||
expectedmessage = _(
|
||||
'Triggers "high_cpu_usage" contains unknown field '
|
||||
'"metadata1". Refer to the definition '
|
||||
'to verify valid values.')
|
||||
err = self.assertRaises(
|
||||
exception.UnknownFieldError,
|
||||
lambda: Triggers(name, triggers[name]))
|
||||
self.assertEqual(expectedmessage, err.__str__())
|
||||
|
||||
def test_policy_missing_required_keyname(self):
|
||||
tpl_snippet = '''
|
||||
policies:
|
||||
|
|
|
@ -18,12 +18,13 @@ from toscaparser.common.exception import UnknownFieldError
|
|||
from toscaparser.entity_template import EntityTemplate
|
||||
from toscaparser.utils import validateutils
|
||||
|
||||
SECTIONS = (DESCRIPTION, EVENT, SCHEDULE, TARGET_FILTER, CONDITION, ACTION) = \
|
||||
('description', 'event_type', 'schedule',
|
||||
'target_filter', 'condition', 'action')
|
||||
CONDITION_KEYNAMES = (METER_NAME, CONSTRAINT, PERIOD, EVALUATIONS, METHOD,
|
||||
SECTIONS = (DESCRIPTION, EVENT, SCHEDULE, METER_NAME, METADATA,
|
||||
TARGET_FILTER, CONDITION, ACTION) = \
|
||||
('description', 'event_type', 'schedule', 'meter_name',
|
||||
'metadata', 'target_filter', 'condition', 'action')
|
||||
CONDITION_KEYNAMES = (CONSTRAINT, PERIOD, EVALUATIONS, METHOD,
|
||||
THRESHOLD, COMPARISON_OPERATOR) = \
|
||||
('meter_name', 'constraint', 'period', 'evaluations',
|
||||
('constraint', 'period', 'evaluations',
|
||||
'method', 'threshold', 'comparison_operator')
|
||||
log = logging.getLogger('tosca')
|
||||
|
||||
|
|
Loading…
Reference in New Issue