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
					
				
					 2 changed files with 101 additions and 2 deletions
				
			
		|  | @ -229,8 +229,19 @@ class TempmonServerDaemon(Daemon): | |||
|                 return | ||||
| 
 | ||||
|         # delay even the first email, until configured threshold is reached | ||||
|         timeout = probe.timeout_for_status(status) or 0 | ||||
|         timeout = datetime.timedelta(minutes=timeout) | ||||
|         timeout = probe.timeout_for_status(status) | ||||
|         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 | ||||
|         if (self.now - started) <= timeout: | ||||
|             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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lance Edgar
						Lance Edgar