Review: Needs Fixing I think this looks fairly reasonable. There's a few things I'd like changed if possible, although they're generally rather small.
Diff comments: > diff --git a/files/NAGIOS-NOTIFY-MIB b/files/NAGIOS-NOTIFY-MIB > new file mode 100644 > index 0000000..03b4c07 > --- /dev/null > +++ b/files/NAGIOS-NOTIFY-MIB > @@ -0,0 +1,620 @@ > +NAGIOS-NOTIFY-MIB DEFINITIONS ::= BEGIN Minor suggestion: can we move the MIB files into a subdir, files/mibs/? Just to be a little cleaner. > + IMPORTS > + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, > + Integer32, Gauge32 > + FROM SNMPv2-SMI > + nagios,NotifyType,HostStateID,HostStateType,ServiceStateID > + FROM NAGIOS-ROOT-MIB; > + > +nagiosNotify MODULE-IDENTITY > + LAST-UPDATED "200503090000Z" -- March 9, 2005 > + ORGANIZATION "Nagios" > + CONTACT-INFO > + " Subhendu Ghosh > + > + Telephone: +1 201 232 2851 > + Email: [email protected] > + > + Nagios Information: > + http://www.nagios.org > + " > + DESCRIPTION > + "Objects for Nagios(tm) events. There are 2 primary tables > + reflecting the division in Nagios for Host events and > + Service events. > + > + The event tables are extended by the HostNotifyTable and the > + ServiceNotifyTable to keep track of the notifications based on events. > + > + The tables entries themselves are not accessible but are used for OID > + entries for TRAP/INFORM notifications. > + > + These objects are based on the macros defined in Nagios v2.0 > + " > + REVISION "200503090000Z" -- March 9, 2005 > + DESCRIPTION > + "Spell check" > + REVISION "200501200000Z" --January 20, 2005 > + DESCRIPTION > + "Initial Version" > + ::= { nagios 1 } > + > + > +nagiosHostEventTable OBJECT-TYPE > + SYNTAX SEQUENCE OF HostEventEntry > + MAX-ACCESS not-accessible > + STATUS current > + DESCRIPTION > + "Table of Nagios host events" > + ::= { nagiosNotify 1 } > + > +HostEventEntry ::= SEQUENCE { > + nHostEventIndex Integer32, > + nHostname OCTET STRING, > + nHostAlias OCTET STRING, > + nHostStateID HostStateID, > + nHostStateType HostStateType, > + nHostAttempt Integer32, > + nHostDurationSec Integer32, > + nHostGroupName OCTET STRING, > + nHostLastCheck INTEGER, > + nHostLastChange INTEGER, > + nHostLastUp INTEGER, > + nHostLastDown INTEGER, > + nHostLastUnreachable INTEGER, > + nHostOutput OCTET STRING, > + nHostPerfData OCTET STRING > + } > + > +nagiosHostEventEntry OBJECT-TYPE > + SYNTAX HostEventEntry > + MAX-ACCESS not-accessible > + STATUS current > + DESCRIPTION > + "Each notification event" > + INDEX { nHostEventIndex } > + ::= { nagiosHostEventTable 1 } > + > +nHostEventIndex OBJECT-TYPE > + SYNTAX Integer32 (1..65535) > + MAX-ACCESS not-accessible > + STATUS current > + DESCRIPTION > + "This object uniquely identifies this host event entry. It is generated > + by the SNMP application and is not related to any Nagios data." > + ::= { nagiosHostEventEntry 1 } > + > +nHostname OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "Hostname as specified in the Nagios configuration file." > + ::= { nagiosHostEventEntry 2 } > + > +nHostAlias OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "The host alias as specified in the Nagios configuration file" > + ::= { nagiosHostEventEntry 3 } > + > +nHostStateID OBJECT-TYPE > + SYNTAX HostStateID > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "The host state as defined by the HOSTSTATEID macro" > + ::= { nagiosHostEventEntry 4 } > + > +nHostStateType OBJECT-TYPE > + SYNTAX HostStateType > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "The host state as defined by the HOSTSTATETYPE macro" > + ::= { nagiosHostEventEntry 5 } > + > +nHostAttempt OBJECT-TYPE > + SYNTAX Integer32 > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "The number of the current host check retry. For instance, if this is > the > + second time that the host is being rechecked, this will be the number > two. > + Current attempt number is really only useful when writing host event > + handlers for soft states that take a specific action based on the host > retry > + number. The host state as defined by the HOSTSTATEID macro" > + ::= { nagiosHostEventEntry 6 } > + > +nHostDurationSec OBJECT-TYPE > + SYNTAX Integer32 > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "A number indicating the number of seconds that the host has spent in its > + current state" > + ::= { nagiosHostEventEntry 7 } > + > +nHostGroupName OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "The short name of the hostgroup that this host belongs to. This value > is > + taken from the hostgroup_name directive in the hostgroup definition. If > the > + host belongs to more than one hostgroup this macro will contain the name > of > + just one of them." > + ::= { nagiosHostEventEntry 8 } > + > +nHostLastCheck OBJECT-TYPE > + SYNTAX INTEGER > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This is a timestamp in time_t format (seconds since the UNIX epoch) > + indicating the time at which a check of the host was last performed." > + ::= { nagiosHostEventEntry 9 } > + > +nHostLastChange OBJECT-TYPE > + SYNTAX INTEGER > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This is a timestamp in time_t format (seconds since the UNIX epoch) > + indicating the time the host last changed state." > + ::= { nagiosHostEventEntry 10 } > + > +nHostLastUp OBJECT-TYPE > + SYNTAX INTEGER > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This is a timestamp in time_t format (seconds since the UNIX epoch) > + indicating the time at which the host was last detected as being in an UP > + state." > + ::= { nagiosHostEventEntry 11 } > + > +nHostLastDown OBJECT-TYPE > + SYNTAX INTEGER > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This is a timestamp in time_t format (seconds since the UNIX epoch) > + indicating the time at which the host was last detected as being in an > + DOWN state." > + ::= { nagiosHostEventEntry 12 } > + > +nHostLastUnreachable OBJECT-TYPE > + SYNTAX INTEGER > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This is a timestamp in time_t format (seconds since the UNIX epoch) > + indicating the time at which the host was last detected as being in an > + UNREACHABLE state." > + ::= { nagiosHostEventEntry 13 } > + > +nHostOutput OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "The text output from the last host check (i.e. Ping OK)." > + ::= { nagiosHostEventEntry 14 } > + > +nHostPerfData OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This object contains any performance data that may have been returned > + by the last host check." > + ::= { nagiosHostEventEntry 15 } > + > + > + > +-- > +-- Host Notifications > + > +nagiosHostNotifyTable OBJECT-TYPE > + SYNTAX SEQUENCE OF HostNotifyEntry > + MAX-ACCESS not-accessible > + STATUS current > + DESCRIPTION > + "Table of Nagios host notifications" > + ::= {nagiosNotify 2} > + > +HostNotifyEntry ::= SEQUENCE { > + nHostNotifyType NotifyType, > + nHostNotifyNum Gauge32, -- was Integer32, > + nHostAckAuthor OCTET STRING, > + nHostAckComment OCTET STRING > + } > + > +nagiosHostNotifyEntry OBJECT-TYPE > + SYNTAX HostNotifyEntry > + MAX-ACCESS not-accessible > + STATUS current > + DESCRIPTION > + "Nagios host notifications extends the nagiosHostEventTable when a > + notification is generated for an event." > + INDEX { nHostEventIndex } > + ::= { nagiosHostNotifyTable 1 } > + > +nHostNotifyType OBJECT-TYPE > + SYNTAX NotifyType > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This identifies the type of notification that is being sent > + (PROBLEM, RECOVERY, ACKNOWLEDGEMENT, FLAPPINGSTART or FLAPPINGSTOP)" > + ::= { nagiosHostNotifyEntry 1 } > + > +nHostNotifyNum OBJECT-TYPE > + SYNTAX Gauge32 -- was NotifyType > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This identifies the current notification number for the service or host. > + The notification number increases by one (1) each time a new > notification > + is sent out for a host or service (except for > acknowledgements). The > + notification number is reset to 0 when the host or service > recovers > + (after the recovery notification has gone out). > Acknowledgements do not > + cause the notification number to increase." > + ::= { nagiosHostNotifyEntry 2 } > + > +nHostAckAuthor OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "A string containing the name of the user who acknowledged the host > + problem. This macro is only valid in notifications where the > + $NOTIFICATIONTYPE$ macro is set to ACKNOWLEDGEMENT." > + ::= { nagiosHostNotifyEntry 3 } > + > +nHostAckComment OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "A string containing the acknowledgement comment that was entered by > + the user who acknowledged the host problem. This macro is only valid > + in notifications where the $NOTIFICATIONTYPE$ macro is set to > ACKNOWLEDGEMENT" > + ::= { nagiosHostNotifyEntry 4 } > + > + > +-- > +-- Service Events > +-- > + > + > +nagiosSvcEventTable OBJECT-TYPE > + SYNTAX SEQUENCE OF SvcEventEntry > + MAX-ACCESS not-accessible > + STATUS current > + DESCRIPTION > + "Table of Nagios service notifications" > + ::= { nagiosNotify 3 } > + > +SvcEventEntry ::= SEQUENCE { > + nSvcEventIndex Integer32, > + nSvcHostname OCTET STRING, > + nSvcHostAlias OCTET STRING, > + nSvcHostStateID HostStateID, > + nSvcHostStateType HostStateType, > + nSvcDesc OCTET STRING, > + nSvcStateID ServiceStateID, > + nSvcAttempt Integer32, > + nSvcDurationSec Integer32, > + nSvcGroupName OCTET STRING, > + nSvcLastCheck INTEGER, > + nSvcLastChange INTEGER, > + nSvcLastOK INTEGER, > + nSvcLastWarn INTEGER, > + nSvcLastCrit INTEGER, > + nSvcLastUnkn INTEGER, > + nSvcOutput OCTET STRING, > + nSvcPerfData OCTET STRING > + } > + > +nagiosSvcEventEntry OBJECT-TYPE > + SYNTAX SvcEventEntry > + MAX-ACCESS not-accessible > + STATUS current > + DESCRIPTION > + "Table of Nagios service events." > + INDEX { nSvcEventIndex } > + ::= { nagiosSvcEventTable 1 } > + > +nSvcEventIndex OBJECT-TYPE > + SYNTAX Integer32 (1..65535) > + MAX-ACCESS not-accessible > + STATUS current > + DESCRIPTION > + "This object uniquely identifies this service event entry" > + ::= { nagiosSvcEventEntry 1 } > + > +nSvcHostname OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "Hostname as specified in the Nagios configuration file." > + ::= { nagiosSvcEventEntry 2 } > + > +nSvcHostAlias OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "The host alias as specified in the Nagios configuration file" > + ::= { nagiosSvcEventEntry 3 } > + > +nSvcHostStateID OBJECT-TYPE > + SYNTAX HostStateID > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "A number that corresponds to the current state of the service: 0=OK, > + 1=WARNING, 2=CRITICAL, 3=UNKNOWN." > + ::= { nagiosSvcEventEntry 4 } > + > +nSvcHostStateType OBJECT-TYPE > + SYNTAX HostStateType > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "Whether the host is in a hard or soft state." > + ::= { nagiosSvcEventEntry 5 } > + > +nSvcDesc OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This value is taken from the description directive of the service > + definition." > + ::= { nagiosSvcEventEntry 6 } > + > +nSvcStateID OBJECT-TYPE > + SYNTAX ServiceStateID > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + " A number that corresponds to the current state of the service: 0=OK, > + 1=WARNING, 2=CRITICAL, 3=UNKNOWN" > + ::= { nagiosSvcEventEntry 7 } > + > +nSvcAttempt OBJECT-TYPE > + SYNTAX Integer32 > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "The number of the current service check retry. For instance, if this is > + the second time that the service is being rechecked, this will be the > + number two. Current attempt number is really only useful when writing > + service event handlers for soft states that take a specific action based > + on the service retry number." > + ::= { nagiosSvcEventEntry 8 } > + > +nSvcDurationSec OBJECT-TYPE > + SYNTAX Integer32 > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "A number indicating the number of seconds that the service has spent in > + its current state." > + ::= { nagiosSvcEventEntry 9 } > + > +nSvcGroupName OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "The short name of the servicegroup that this service belongs to. This > + value is taken from the servicegroup_name directive in the servicegroup > + definition. If the service belongs to more than one servicegroup this > + object will contain the name of just one of them." > + ::= { nagiosSvcEventEntry 10 } > + > +nSvcLastCheck OBJECT-TYPE > + SYNTAX INTEGER > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This is a timestamp in time_t format (seconds since the UNIX epoch) > + indicating the time at which a check of the service was last performed." > + ::= { nagiosSvcEventEntry 11 } > + > +nSvcLastChange OBJECT-TYPE > + SYNTAX INTEGER > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This is a timestamp in time_t format (seconds since the UNIX epoch) > + indicating the time the service last changed state." > + ::= { nagiosSvcEventEntry 12 } > + > +nSvcLastOK OBJECT-TYPE > + SYNTAX INTEGER > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This is a timestamp in time_t format (seconds since the UNIX epoch) > + indicating the time at which the service was last detected as being in an > + OK state." > + ::= { nagiosSvcEventEntry 13 } > + > +nSvcLastWarn OBJECT-TYPE > + SYNTAX INTEGER > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This is a timestamp in time_t format (seconds since the UNIX epoch) > + indicating the time at which the service was last detected as being in a > + WARNING state." > + ::= { nagiosSvcEventEntry 14 } > + > +nSvcLastCrit OBJECT-TYPE > + SYNTAX INTEGER > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This is a timestamp in time_t format (seconds since the UNIX epoch) > + indicating the time at which the service was last detected as being in a > + CRITICAL state." > + ::= { nagiosSvcEventEntry 15 } > + > +nSvcLastUnkn OBJECT-TYPE > + SYNTAX INTEGER > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This is a timestamp in time_t format (seconds since the UNIX epoch) > + indicating the time at which the service was last detected as being in an > + UNKNOWN state." > + ::= { nagiosSvcEventEntry 16 } > + > +nSvcOutput OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "The text output from the last service check (i.e. Ping OK)." > + ::= { nagiosSvcEventEntry 17 } > + > +nSvcPerfData OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "This object contains any performance data that may have been returned by > + the last service check." > + ::= { nagiosSvcEventEntry 18 } > + > + > +-- > +-- Service Notifications > +-- > + > +nagiosSvcNotifyTable OBJECT-TYPE > + SYNTAX SEQUENCE OF SvcNotifyEntry > + MAX-ACCESS not-accessible > + STATUS current > + DESCRIPTION > + "Table of Nagios service notifications." > + ::= { nagiosNotify 4 } > + > +SvcNotifyEntry ::= SEQUENCE { > + nSvcNotifyType NotifyType, > + nSvcNotifyNum Gauge32, -- Integer32, > + nSvcAckAuthor OCTET STRING, > + nSvcAckComment OCTET STRING > + } > + > +nagiosSvcNotifyEntry OBJECT-TYPE > + SYNTAX SvcNotifyEntry > + MAX-ACCESS not-accessible > + STATUS current > + DESCRIPTION > + "Nagios service notifications extends the nagiosSvcEnevtsTable when > + a notification is generated for an event." > + INDEX { nSvcEventIndex } > + ::= { nagiosSvcNotifyTable 1} > + > + > +nSvcNotifyType OBJECT-TYPE > + SYNTAX NotifyType > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "A string identifying the type of notification that is being sent > + (PROBLEM, RECOVERY, ACKNOWLEDGEMENT, FLAPPINGSTART or FLAPPINGSTOP)." > + ::= { nagiosSvcNotifyEntry 1 } > + > +nSvcNotifyNum OBJECT-TYPE > + SYNTAX Gauge32 -- Integer32 > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "The current notification number for the service or host. The > notification > + number increases by one (1) each time a new notification is sent out for > a > + host or service (except for acknowledgements). The notification number is > + reset to 0 when the host or service recovers (after the recovery > + notification has gone out). Acknowledgements do not cause the > notification > + number to increase." > + ::= { nagiosSvcNotifyEntry 2 } > + > +nSvcAckAuthor OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "A string containing the name of the user who acknowledged the service > + problem. This object is only valid in notifications where the > + nSvcNotifyType object is set to ACKNOWLEDGEMENT." > + ::= { nagiosSvcNotifyEntry 3 } > + > +nSvcAckComment OBJECT-TYPE > + SYNTAX OCTET STRING > + MAX-ACCESS read-only > + STATUS current > + DESCRIPTION > + "A string containing the acknowledgement comment that was entered by the > + user who acknowledged the service problem. This object is only valid in > + notifications where the nSvcNotifyType object is set to ACKNOWLEDGEMENT." > + ::= { nagiosSvcNotifyEntry 4 } > + > + > +-- > +-- Events and Notifications > +-- > + > +nHostEvent NOTIFICATION-TYPE > + OBJECTS { nHostname, nHostStateID, nHostStateType, nHostAttempt, > + nHostDurationSec, nHostGroupName, nHostLastCheck, > nHostLastChange, > + nHostOutput } > + STATUS current > + DESCRIPTION > + "The SNMP trap that is generated as a result of an event with the host > + in Nagios." > + > + ::= { nagiosNotify 5 } > + > +nHostNotify NOTIFICATION-TYPE > + OBJECTS { nHostNotifyType, nHostNotifyNum, nHostAckAuthor, nHostAckComment, > + nHostname, nHostStateID, nHostStateType, nHostAttempt, > + nHostDurationSec, nHostGroupName, nHostLastCheck, > nHostLastChange, > + nHostOutput } > + STATUS current > + DESCRIPTION > + "The SNMP trap that is generated as a result of an event requiring > + notification for a host in Nagios." > + ::= { nagiosNotify 6 } > + > +nSvcEvent NOTIFICATION-TYPE > + OBJECTS { nHostname, nHostStateID, nSvcDesc, nSvcStateID, nSvcAttempt, > + nSvcDurationSec, nSvcGroupName, nSvcLastCheck, nSvcLastChange, > + nSvcOutput } > + STATUS current > + DESCRIPTION > + "The SNMP trap that is generated as a result of an event with the service > + in Nagios." > + ::= { nagiosNotify 7 } > + > +nSvcNotify NOTIFICATION-TYPE > + OBJECTS { nSvcNotifyType, nSvcNotifyNum, nSvcAckAuthor, nSvcAckComment, > + nHostname, nHostStateID, nSvcDesc, nSvcStateID, nSvcAttempt, > + nSvcDurationSec, nSvcGroupName, nSvcLastCheck, nSvcLastChange, > + nSvcOutput } > + STATUS current > + DESCRIPTION > + "The SNMP trap that is generated as a result of an event requiring > + notification for a service in Nagios." > + ::= { nagiosNotify 8 } > + > + > +END > diff --git a/hooks/install b/hooks/install > index f002e46..522448e 100755 > --- a/hooks/install > +++ b/hooks/install > @@ -67,6 +67,15 @@ dpkg-statoverride --update --add nagios www-data 2710 > /var/lib/nagios3/rw || : > dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3 || : > service nagios3 start > > +# install files needed for sending snmp traps functionality > +cp -v $CHARM_DIR/files/NAGIOS-NOTIFY-MIB /usr/share/snmp/mibs/ > +cp -v $CHARM_DIR/files/NAGIOS-ROOT-MIB /usr/share/snmp/mibs/ > +cp -v $CHARM_DIR/files/SNMPv2-MIB.txt /usr/share/snmp/mibs/ > +cp -v $CHARM_DIR/files/SNMPv2-SMI.txt /usr/share/snmp/mibs/ > +cp -v $CHARM_DIR/files/SNMPv2-TC.txt /usr/share/snmp/mibs/ If you move the mib files as requested above, don't forget to update this code to copy from $CHARM_DIR/files/mibs/. > +cp -v $CHARM_DIR/files/send-host-trap /usr/local/bin/ > +cp -v $CHARM_DIR/files/send-service-trap /usr/local/bin/ > + > # For the admin interface > open-port 80 > > diff --git a/hooks/upgrade-charm b/hooks/upgrade-charm > index a80743b..457cafe 100755 > --- a/hooks/upgrade-charm > +++ b/hooks/upgrade-charm > @@ -161,12 +165,38 @@ def enable_pagerduty_config(): > os.remove(pagerduty_cron) > > # Update contacts for admin > - contactgroup_members = hookenv.config("contactgroup-members") > if enable_pagerduty: > # avoid duplicates > if "pagerduty" not in contactgroup_members: > contactgroup_members += ", pagerduty" Here I have some concern. I do know that this script heavily uses globals already, so I'm not complaining about adding one more - however, I think we should avoid modifying those globals at runtime, and treat them more like constants. If someone edited this later, expecting to get the contactgroup-members config value out of the contactgroup_members global, they might be in for a surprise if they don't understand that it's being modified at runtime, which may not be obvious without reading the whole script. While modifying the global like this is _not_ technically incorrect, can we instead construct a value based off of the config value and pass it into the update_contacts() method where it's finally used? Just to be a little more on the safe side. > > +def enable_traps_config(): > + global contactgroup_members > + > + send_traps_to = hookenv.config('send_traps_to') > + > + if not send_traps_to: > + if os.path.isfile(traps_cfg): > + os.remove(traps_cfg) > + hookenv.log("Send traps feature is disabled") > + return > + > + hookenv.log("Send traps feature is enabled, target address is %s" % > send_traps_to) > + > + if "managementstation" not in contactgroup_members: > + contactgroup_members += ", managementstation" > + > + template_values = { 'send_traps_to': send_traps_to } > + > + with open('hooks/templates/traps.tmpl','r') as f: > + templateDef = f.read() > + > + t = Template(templateDef) > + with open(traps_cfg, 'w') as f: > + f.write(t.render(template_values)) > + > + > +def update_contacts(): > template_values = {'admin_service_notification_period': > hookenv.config('admin_service_notification_period'), > 'admin_host_notification_period': > hookenv.config('admin_host_notification_period'), > 'admin_service_notification_options': > hookenv.config('admin_service_notification_options'), -- https://code.launchpad.net/~andre-ruiz/charm-nagios/+git/charm-nagios-implement-traps/+merge/385246 Your team Nagios Charm developers is subscribed to branch charm-nagios:master. -- Mailing list: https://launchpad.net/~nagios-charmers Post to : [email protected] Unsubscribe : https://launchpad.net/~nagios-charmers More help : https://help.launchpad.net/ListHelp

