From 41ad07ac1e477ab155e70c9252c36a5509dd7351 Mon Sep 17 00:00:00 2001 From: flavien peyre Date: Tue, 18 Aug 2015 10:48:07 -0400 Subject: [PATCH] Improve init.py for the demo Change-Id: Icffad63263f740d22d9803a84bd1e1f0699fb7f5 --- surveil/api/storage/mongodb/config/contact.py | 15 +-- .../api/storage/mongodb/config/timeperiod.py | 2 +- surveil/cmd/init.py | 93 +++++++++++++++++++ 3 files changed, 102 insertions(+), 8 deletions(-) diff --git a/surveil/api/storage/mongodb/config/contact.py b/surveil/api/storage/mongodb/config/contact.py index 0064b8c..ba7d9f7 100644 --- a/surveil/api/storage/mongodb/config/contact.py +++ b/surveil/api/storage/mongodb/config/contact.py @@ -18,8 +18,8 @@ import mongoengine class Contact(mongoengine.Document): meta = {'collection': 'contacts'} contact_name = mongoengine.StringField(unique=True) - host_notifications_enabled = mongoengine.StringField() - service_notifications_enabled = mongoengine.StringField() + host_notifications_enabled = mongoengine.IntField() + service_notifications_enabled = mongoengine.IntField() host_notification_period = mongoengine.StringField() service_notification_period = mongoengine.StringField() host_notification_options = mongoengine.ListField() @@ -28,8 +28,9 @@ class Contact(mongoengine.Document): service_notification_commands = mongoengine.ListField() email = mongoengine.StringField() pager = mongoengine.StringField() - can_submit_commands = mongoengine.StringField() - is_admin = mongoengine.StringField() - retain_status_information = mongoengine.StringField() - retain_nonstatus_information = mongoengine.StringField() - min_business_impact = mongoengine.StringField() + can_submit_commands = mongoengine.IntField() + is_admin = mongoengine.IntField() + retain_status_information = mongoengine.IntField() + retain_nonstatus_information = mongoengine.IntField() + min_business_impact = mongoengine.IntField() + diff --git a/surveil/api/storage/mongodb/config/timeperiod.py b/surveil/api/storage/mongodb/config/timeperiod.py index ebedf25..4158dfa 100644 --- a/surveil/api/storage/mongodb/config/timeperiod.py +++ b/surveil/api/storage/mongodb/config/timeperiod.py @@ -18,6 +18,6 @@ import mongoengine class TimePeriod(mongoengine.Document): meta = {'collection': 'timeperiods'} timeperiod_name = mongoengine.StringField() - exclude = mongoengine.StringField() + exclude = mongoengine.ListField() periods = mongoengine.DictField() alias = mongoengine.StringField() diff --git a/surveil/cmd/init.py b/surveil/cmd/init.py index 75fed0c..44afd56 100644 --- a/surveil/cmd/init.py +++ b/surveil/cmd/init.py @@ -265,6 +265,99 @@ def main(): service_description="iamadownservice" ) + cli_surveil.config.businessimpactmodulations.create( + business_impact_modulation_name="demoBIM", + business_impact=42, + modulation_period="24x7" + ) + + cli_surveil.config.checkmodulations.create( + checkmodulation_name="demoCheckModulation", + check_command="42", + check_period="24x7" + ) + + cli_surveil.config.commands.create( + command_name="demoCommand", + command_line="ls --all", + module_type="active" + ) + + cli_surveil.config.contacts.create( + contact_name="demoContact", + host_notifications_enabled=1, + service_notifications_enabled=0, + host_notification_period="24x6", + service_notification_period="12x7", + host_notification_options=["mail","sms"], + service_notification_options=["mail"], + host_notification_commands=["sms admin"], + service_notification_commands=["send mail to admin"], + email="surveil.demo@gmail.com", + pager="12", + can_submit_commands=1, + is_admin=0, + retain_status_information=1, + retain_nonstatus_information=365, + min_business_impact=24 + ) + + cli_surveil.config.contactgroups.create( + contactgroup_name="BDFL", + members=["demoContact"], + alias="group Alias", + contactgroup_members=["Linus", "Richard"] + ) + + cli_surveil.config.hostgroups.create( + hostgroup_name="OpenStack01", + members=['sw-iwebcore-01','srv-monitoring-01'], + alias="group Alias", + hostgroup_members=["AWS01", "Azure01"], + notes="notes", + notes_url="http://....notes.com", + action_url="mail" + ) + + cli_surveil.config.macromodulations.create( + macromodulation_name="Demo macroModulation", + modulation_period="24x7", + macro={"Linus":"Linux", "Richard":"Gnu"} + ) + + cli_surveil.config.notificationways.create( + notificationway_name="Demo motificationway", + host_notification_period="24x7", + service_notification_period="12x7", + host_notification_options=["mail","sms"], + service_notification_options=["mail"], + host_notification_commands=["sms admin"], + service_notification_commands=["send mail to admin"], + min_business_impact="24" + ) + + cli_surveil.config.realms.create( + realm_name="Mordor", + realm_members=["Frodon","Gandalf","Sauron"], + default=42 + ) + + cli_surveil.config.servicegroups.create( + servicegroup_name="check Openstack", + members=["check-ws-arbiter"], + alias="group Alias", + servicegroup_members=["check Keystone", "check Nova"], + notes="notes", + notes_url="http://....notes.com", + action_url="mail" + ) + + cli_surveil.config.timeperiods.create( + timeperiod_name="Demo TimePeriod", + exclude=["24x7","11x12"], + periods={"day":"demo","night":"demoNight"}, + alias="aliasGroup" + ) # Reload the shinken config cli_surveil.config.reload_config()