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 |                 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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lance Edgar
						Lance Edgar