Refactoring: Moved check parameters from unsorted.py to dedicated modules (CMK-1393)
[check_mk.git] / checks / 3par_remotecopy
blobf7260702e2b8310ebdcdba269c507a60adc3941a
1 #!/usr/bin/python
2 # -*- encoding: utf-8; py-indent-offset: 4 -*-
3 # +------------------------------------------------------------------+
4 # | ____ _ _ __ __ _ __ |
5 # | / ___| |__ ___ ___| | __ | \/ | |/ / |
6 # | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
7 # | | |___| | | | __/ (__| < | | | | . \ |
8 # | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
9 # | |
10 # | Copyright Mathias Kettner 2017 mk@mathias-kettner.de |
11 # +------------------------------------------------------------------+
13 # This file is part of Check_MK.
14 # The official homepage is at http://mathias-kettner.de/check_mk.
16 # check_mk is free software; you can redistribute it and/or modify it
17 # under the terms of the GNU General Public License as published by
18 # the Free Software Foundation in version 2. check_mk is distributed
19 # in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
20 # out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
21 # PARTICULAR PURPOSE. See the GNU General Public License for more de-
22 # tails. You should have received a copy of the GNU General Public
23 # License along with GNU Make; see the file COPYING. If not, write
24 # to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
25 # Boston, MA 02110-1301 USA.
27 # example output
29 factory_settings['threepar_remotecopy_default_levels'] = {
30 1: 0, # NORMAL
31 2: 1, # STARTUP
32 3: 1, # SHUTDOWN
33 4: 0, # ENABLE
34 5: 2, # DISABLE
35 6: 2, # INVALID
36 7: 1, # NODEDUP
37 8: 0, # UPGRADE
41 def inventory_3par_remotecopy(parsed):
42 if parsed.get("mode", 0) > 1:
43 return [(None, {})]
46 def check_3par_remotecopy(_no_item, params, parsed):
47 mode_translate = {
48 1: (3, "NONE"),
49 2: (0, "STARTED"),
50 3: (2, "STOPPED"),
53 state, state_readable = mode_translate[parsed.get('mode', 1)]
54 yield state, "Mode: %s" % state_readable
56 status_translate = {
57 1: "NORMAL",
58 2: "STARTUP",
59 3: "SHUTDOWN",
60 4: "ENABLE",
61 5: "DISABLE",
62 6: "INVALID",
63 7: "NODEDUP",
64 8: "UPGRADE",
67 status = parsed.get('status', 6)
68 state_readable = status_translate[status]
69 yield params[status], "Status: %s" % state_readable
72 check_info['3par_remotecopy'] = {
73 'parse_function': parse_3par,
74 'inventory_function': inventory_3par_remotecopy,
75 'check_function': check_3par_remotecopy,
76 'service_description': "Remote copy",
77 'group': "threepar_remotecopy",
78 'default_levels_variable': "threepar_remotecopy_default_levels",
79 'includes': ["3par.include"],