Module: check_mk
Branch: master
Commit: d161a10a862c6c9898cbf5bacacac6b51953c6c6
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=d161a10a862c6c…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Wed Sep 19 14:44:31 2018 +0200
Centralized some weekday specifications
CMK-522
Change-Id: I66613c9f396fb8e2855a9d28397c64c521c70fe8
---
cmk/defines.py | 20 ++++++++++++++++++++
cmk/gui/plugins/wato/check_parameters.py | 14 ++------------
cmk/gui/wato/pages/timeperiods.py | 26 +++++++-------------------
cmk_base/prediction.py | 10 +++-------
4 files changed, 32 insertions(+), 38 deletions(-)
diff --git a/cmk/defines.py b/cmk/defines.py
index ff6a935..fb53b0e 100644
--- a/cmk/defines.py
+++ b/cmk/defines.py
@@ -88,10 +88,17 @@ def short_host_state_name(state_num, deflt=""):
def weekday_name(day_num):
+ """Returns the human readable day name of a given weekday number
(starting with 0 at Monday)"""
return weekdays()[day_num]
+def weekday_ids():
+ """Returns a list of the internal week day names"""
+ return [ d[0] for d in weekdays_by_name() ]
+
+
def weekdays():
+ """Returns a map of weekday number (starting with 0 at Monday) to the
human readable day name"""
return {
0: _("Monday"),
1: _("Tuesday"),
@@ -103,6 +110,19 @@ def weekdays():
}
+def weekdays_by_name():
+ """Returns a list of two element tuples containing the weekday ID and
the human readable day name"""
+ return [
+ ( "monday", _("Monday") ),
+ ( "tuesday", _("Tuesday") ),
+ ( "wednesday", _("Wednesday") ),
+ ( "thursday", _("Thursday") ),
+ ( "friday", _("Friday") ),
+ ( "saturday", _("Saturday") ),
+ ( "sunday", _("Sunday") ),
+ ]
+
+
def interface_oper_state_name(state_num, deflt=""):
return interface_oper_states().get(state_num, deflt)
diff --git a/cmk/gui/plugins/wato/check_parameters.py
b/cmk/gui/plugins/wato/check_parameters.py
index 35c2559..31beacc 100755
--- a/cmk/gui/plugins/wato/check_parameters.py
+++ b/cmk/gui/plugins/wato/check_parameters.py
@@ -5118,18 +5118,8 @@ register_check_parameters(
help = _("Specifiy time ranges during which no motion is expected.
"
"Outside these times, the motion detector will always be
in "
"state OK"),
- elements = [
- (day_id, TimeofdayRanges(count = 3, title = day_str))
- for day_id, day_str in [
- ("monday", _("Monday")),
- ("tuesday", _("Tuesday")),
- ("wednesday", _("Wednesday")),
- ("thursday", _("Thursday")),
- ("friday", _("Friday")),
- ("saturday", _("Saturday")),
- ("sunday", _("Sunday"))
- ]
- ],
+ elements = [ (day_id, TimeofdayRanges(count = 3, title = day_str))
+ for day_id, day_str in defines.weekdays_by_name() ],
optional_keys = []
)
),
diff --git a/cmk/gui/wato/pages/timeperiods.py b/cmk/gui/wato/pages/timeperiods.py
index e469f08..e68aa02 100644
--- a/cmk/gui/wato/pages/timeperiods.py
+++ b/cmk/gui/wato/pages/timeperiods.py
@@ -29,6 +29,8 @@
import re
import time
+import cmk.defines as defines
+
import cmk.gui.config as config
import cmk.gui.watolib as watolib
import cmk.gui.userdb as userdb
@@ -421,8 +423,7 @@ class ModeTimeperiodImportICal(WatoMode):
html.set_var('alias', data.get('descr', data.get('name',
filename)))
- for day in [ "monday", "tuesday", "wednesday",
"thursday",
- "friday", "saturday", "sunday" ]:
+ for day in defines.weekday_ids():
html.set_var('%s_0_from' % day, '')
html.set_var('%s_0_until' % day, '')
@@ -672,8 +673,7 @@ class ModeEditTimeperiod(WatoMode):
def _validate_timeperiod_exception(self, value, varprefix):
- if value in [ "monday", "tuesday", "wednesday",
"thursday",
- "friday", "saturday", "sunday" ]:
+ if value in defines.weekday_ids():
raise MKUserError(varprefix, _("You cannot use weekday names (%s) in
exceptions") % value)
if value in [ "name", "alias", "timeperiod_name",
"register", "use", "exclude" ]:
@@ -726,7 +726,7 @@ class ModeEditTimeperiod(WatoMode):
self._timeperiod.clear()
# extract time ranges of weekdays
- for weekday, _weekday_name in self._weekdays_by_name():
+ for weekday, _weekday_name in defines.weekdays_by_name():
ranges = self._get_ranges(weekday)
if ranges:
self._timeperiod[weekday] = ranges
@@ -804,7 +804,7 @@ class ModeEditTimeperiod(WatoMode):
"should be active.")
html.open_table(class_="timeperiod")
- for weekday, weekday_alias in self._weekdays_by_name():
+ for weekday, weekday_alias in defines.weekdays_by_name():
html.open_tr()
html.td(weekday_alias, class_="name")
self._timeperiod_ranges(weekday, weekday)
@@ -820,7 +820,7 @@ class ModeEditTimeperiod(WatoMode):
exceptions = []
for k in self._timeperiod:
- if k not in [ w[0] for w in self._weekdays_by_name() ] and k not in [
"alias", "exclude" ]:
+ if k not in [ w[0] for w in defines.weekdays_by_name() ] and k not in [
"alias", "exclude" ]:
exceptions.append((k, map(self._convert_from_range,
self._timeperiod[k])))
exceptions.sort()
self._vs_exceptions().render_input("except", exceptions)
@@ -851,15 +851,3 @@ class ModeEditTimeperiod(WatoMode):
html.open_td()
MultipleTimeRanges().render_input(vp, value)
html.close_td()
-
-
- def _weekdays_by_name(self):
- return [
- ( "monday", _("Monday") ),
- ( "tuesday", _("Tuesday") ),
- ( "wednesday", _("Wednesday") ),
- ( "thursday", _("Thursday") ),
- ( "friday", _("Friday") ),
- ( "saturday", _("Saturday") ),
- ( "sunday", _("Sunday") ),
- ]
diff --git a/cmk_base/prediction.py b/cmk_base/prediction.py
index 67b5633..29c735f 100644
--- a/cmk_base/prediction.py
+++ b/cmk_base/prediction.py
@@ -36,10 +36,10 @@ import livestatus
import cmk.paths
import cmk.debug
import cmk.utils
-
+import cmk.log
+import cmk.defines as defines
from cmk.exceptions import MKGeneralException
-import cmk.log
logger = cmk.log.get_logger(__name__)
# Fetch RRD historic metrics data of a specific service. returns a tuple
@@ -71,10 +71,6 @@ def get_rrd_data(hostname, service_description, varname, cf, fromtime,
untiltime
step, values = response[2], response[3:]
return step, values
-
-daynames = [ "monday", "tuesday", "wednesday",
"thursday",
- "friday", "saturday", "sunday"]
-
# Check wether a certain time stamp lies with in daylight safing time (DST)
def is_dst(timestamp):
return time.localtime(timestamp).tm_isdst
@@ -89,7 +85,7 @@ def timezone_at(timestamp):
def group_by_wday(t):
wday = time.localtime(t).tm_wday
rel_time = divmod(t - timezone_at(t), 86400)[1]
- return daynames[wday], rel_time
+ return defines.weekday_ids()[wday], rel_time
def group_by_day(t):
return "everyday", (t - timezone_at(t)) % 86400