diff options
Diffstat (limited to 'doctor_tests/installer/common')
-rw-r--r-- | doctor_tests/installer/common/vitrage.py | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/doctor_tests/installer/common/vitrage.py b/doctor_tests/installer/common/vitrage.py new file mode 100644 index 00000000..9ea32271 --- /dev/null +++ b/doctor_tests/installer/common/vitrage.py @@ -0,0 +1,98 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +import os + + +vitrage_template_file = '/etc/vitrage/templates/vitrage_host_down_scenarios.yaml' + +template = """ +metadata: + name: host_down_scenarios + description: scenarios triggered by Doctor monitor 'compute.host.down' alarm +definitions: + entities: + - entity: + category: ALARM + name: compute.host.down + template_id: host_down_alarm + - entity: + category: ALARM + type: vitrage + name: Instance Down + template_id: instance_alarm + - entity: + category: RESOURCE + type: nova.instance + template_id: instance + - entity: + category: RESOURCE + type: nova.host + template_id: host + relationships: + - relationship: + source: host_down_alarm + relationship_type: on + target: host + template_id : host_down_alarm_on_host + - relationship: + source: host + relationship_type: contains + target: instance + template_id : host_contains_instance + - relationship: + source: instance_alarm + relationship_type: on + target: instance + template_id : alarm_on_instance +scenarios: + - scenario: + condition: host_down_alarm_on_host + actions: + - action: + action_type: set_state + action_target: + target: host + properties: + state: ERROR + - action: + action_type: mark_down + action_target: + target: host + - scenario: + condition: host_down_alarm_on_host and host_contains_instance + actions: + - action: + action_type: raise_alarm + action_target: + target: instance + properties: + alarm_name: Instance Down + severity: critical + - scenario: + condition: host_down_alarm_on_host and host_contains_instance and alarm_on_instance + actions: + - action: + action_type: add_causal_relationship + action_target: + source: host_down_alarm + target: instance_alarm + - action: + action_type: mark_down + action_target: + target: instance +""" + + +def set_vitrage_host_down_template(): + if os.path.isfile(vitrage_template_file): + print('Vitrage host_down template file: %s already exists.' % vitrage_template_file) + else: + print('Create Vitrage host_down template file:%s.' % vitrage_template_file) + with open(vitrage_template_file, 'w') as file: + file.write(template) |