Add "default" probe timeout logic for server readings check
this way we don't have to set those timeouts on every single probe
This commit is contained in:
parent
1f8507508a
commit
30f0fe0a84
|
@ -229,8 +229,19 @@ class TempmonServerDaemon(Daemon):
|
||||||
return
|
return
|
||||||
|
|
||||||
# delay even the first email, until configured threshold is reached
|
# delay even the first email, until configured threshold is reached
|
||||||
timeout = probe.timeout_for_status(status) or 0
|
timeout = probe.timeout_for_status(status)
|
||||||
timeout = datetime.timedelta(minutes=timeout)
|
if timeout is None:
|
||||||
|
if status == self.enum.TEMPMON_PROBE_STATUS_CRITICAL_HIGH_TEMP:
|
||||||
|
timeout = self.config.getint('rattail_tempmon', 'probe.default.critical_max_timeout')
|
||||||
|
elif status == self.enum.TEMPMON_PROBE_STATUS_HIGH_TEMP:
|
||||||
|
timeout = self.config.getint('rattail_tempmon', 'probe.default.good_max_timeout')
|
||||||
|
elif status == self.enum.TEMPMON_PROBE_STATUS_LOW_TEMP:
|
||||||
|
timeout = self.config.getint('rattail_tempmon', 'probe.default.good_min_timeout')
|
||||||
|
elif status == self.enum.TEMPMON_PROBE_STATUS_CRITICAL_LOW_TEMP:
|
||||||
|
timeout = self.config.getint('rattail_tempmon', 'probe.default.critical_min_timeout')
|
||||||
|
elif status == self.enum.TEMPMON_PROBE_STATUS_ERROR:
|
||||||
|
timeout = self.config.getint('rattail_tempmon', 'probe.default.error_timeout')
|
||||||
|
timeout = datetime.timedelta(minutes=timeout or 0)
|
||||||
started = probe.status_started(status) or probe.status_changed
|
started = probe.status_started(status) or probe.status_changed
|
||||||
if (self.now - started) <= timeout:
|
if (self.now - started) <= timeout:
|
||||||
return
|
return
|
||||||
|
|
88
rattail_tempmon/settings.py
Normal file
88
rattail_tempmon/settings.py
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
# -*- coding: utf-8; -*-
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Rattail -- Retail Software Framework
|
||||||
|
# Copyright © 2010-2018 Lance Edgar
|
||||||
|
#
|
||||||
|
# This file is part of Rattail.
|
||||||
|
#
|
||||||
|
# Rattail is free software: you can redistribute it and/or modify it under the
|
||||||
|
# terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation, either version 3 of the License, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# Rattail is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with
|
||||||
|
# Rattail. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
"""
|
||||||
|
Rattail Tempmon Settings
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import unicode_literals, absolute_import
|
||||||
|
|
||||||
|
from rattail.settings import Setting
|
||||||
|
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# TempMon
|
||||||
|
##############################
|
||||||
|
|
||||||
|
class rattail_tempmon_probe_default_critical_max_timeout(Setting):
|
||||||
|
"""
|
||||||
|
Default value to be used as Critical High Timeout value, for any probe
|
||||||
|
which does not have this timeout defined.
|
||||||
|
"""
|
||||||
|
group = "TempMon"
|
||||||
|
namespace = 'rattail_tempmon'
|
||||||
|
name = 'probe.default.critical_max_timeout'
|
||||||
|
data_type = int
|
||||||
|
|
||||||
|
|
||||||
|
class rattail_tempmon_probe_default_critical_min_timeout(Setting):
|
||||||
|
"""
|
||||||
|
Default value to be used as Critical Low Timeout value, for any probe which
|
||||||
|
does not have this timeout defined.
|
||||||
|
"""
|
||||||
|
group = "TempMon"
|
||||||
|
namespace = 'rattail_tempmon'
|
||||||
|
name = 'probe.default.critical_min_timeout'
|
||||||
|
data_type = int
|
||||||
|
|
||||||
|
|
||||||
|
class rattail_tempmon_probe_default_error_timeout(Setting):
|
||||||
|
"""
|
||||||
|
Default value to be used as Error Timeout value, for any probe which does
|
||||||
|
not have this timeout defined.
|
||||||
|
"""
|
||||||
|
group = "TempMon"
|
||||||
|
namespace = 'rattail_tempmon'
|
||||||
|
name = 'probe.default.error_timeout'
|
||||||
|
data_type = int
|
||||||
|
|
||||||
|
|
||||||
|
class rattail_tempmon_probe_default_good_max_timeout(Setting):
|
||||||
|
"""
|
||||||
|
Default value to be used as High Timeout value, for any probe which does
|
||||||
|
not have this timeout defined.
|
||||||
|
"""
|
||||||
|
group = "TempMon"
|
||||||
|
namespace = 'rattail_tempmon'
|
||||||
|
name = 'probe.default.good_max_timeout'
|
||||||
|
data_type = int
|
||||||
|
|
||||||
|
|
||||||
|
class rattail_tempmon_probe_default_good_min_timeout(Setting):
|
||||||
|
"""
|
||||||
|
Default value to be used as Low Timeout value, for any probe which does not
|
||||||
|
have this timeout defined.
|
||||||
|
"""
|
||||||
|
group = "TempMon"
|
||||||
|
namespace = 'rattail_tempmon'
|
||||||
|
name = 'probe.default.good_min_timeout'
|
||||||
|
data_type = int
|
Loading…
Reference in a new issue