Module: check_mk
Branch: master
Commit: 6525c62e5ef543b5a029b8503a387e8f92f58843
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=6525c62e5ef543…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Tue Jul 3 13:59:48 2012 +0200
FIX: fixed default setting if "Hide names of configuration variables"
in WATO
---
.bugs/759 | 12 ++++++++++++
.bugs/774 | 7 +++++--
ChangeLog | 2 ++
web/plugins/wato/check_mk_configuration.py | 2 +-
4 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/.bugs/759 b/.bugs/759
index bd1c060..5a35e43 100644
--- a/.bugs/759
+++ b/.bugs/759
@@ -20,3 +20,15 @@ working!
Furthermore: If you now uncheck the one single
checkbox and again issue a command: it will still
think this box is checked.
+
+----
+
+This is related to the URL parsing code in javascript.
+The "no" link destroys the url because it issues a POST
+request. We need to make the POST vars available in js
+to make this code work again. Maybe we add a general code
+which makes all variables available as json construct in JS.
+
+But this does not resolve the problem completely. Once we
+have too many vars we need to make POST requests for reloading
+views.
diff --git a/.bugs/774 b/.bugs/774
index ae43041..5a1f575 100644
--- a/.bugs/774
+++ b/.bugs/774
@@ -1,11 +1,14 @@
Title: Option "hide names of configuration variables" works only after switching
Component: wato
-State: open
+Class: bug
+State: done
Date: 2012-06-15 13:53:06
Targetversion: 1.2.0
-Class: bug
The configuration variable is - per WATO - default off. But
in fact the real default value seems to be True. So
in order to see the variable names you need to toggle
once on and off again.
+
+2012-07-03 13:58:51: changed state open -> done
+Fixed WATO option definition
diff --git a/ChangeLog b/ChangeLog
index 2635658..a052e19 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -52,6 +52,8 @@
* FIX: massive speedup when changing roles/users and activing changes
(especially when you have a larger number of users and folders)
* Add variable CONTACTPAGER to allowed macros in notifications
+ * FIX: fixed default setting if "Hide names of configuration variables"
+ in WATO
BI:
* New iterators FOREACH_CHILD and FOREACH_PARENT
diff --git a/web/plugins/wato/check_mk_configuration.py b/web/plugins/wato/check_mk_configuration.py
index 513fc6c..d4e5d7c 100644
--- a/web/plugins/wato/check_mk_configuration.py
+++ b/web/plugins/wato/check_mk_configuration.py
@@ -179,7 +179,7 @@ register_configvar(group,
label = _("hide variable names"),
help = _("When enabled, internal configuration variable names of Check_MK are hidded "
"from the user (for example in the rule editor)"),
- default_value = False),
+ default_value = True),
domain = "multisite")
register_configvar(group,
Module: check_mk
Branch: master
Commit: c7bec8a3180bd03375261e9036745757bb10f78f
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=c7bec8a3180bd0…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Jul 3 12:38:21 2012 +0200
Do no load plugins before config
Internal restructuration. Plugins are now not loaded before the configuration. From that
results that page handlers must not be defined in plugins but in regular modules in htdocs.
Needed to move a few ajax handlers from plugins to their according module for that reason.
---
web/htdocs/dashboard.py | 2 +-
web/htdocs/sidebar.py | 136 +++++++++++++++++++++++++++++++++++++++-
web/htdocs/views.py | 2 +-
web/htdocs/wato.py | 5 +-
web/plugins/pages/shipped.py | 1 +
web/plugins/pages/wato.py | 3 +-
web/plugins/sidebar/shipped.py | 134 ---------------------------------------
web/plugins/sidebar/wato.py | 3 -
8 files changed, 143 insertions(+), 143 deletions(-)
Diff: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commitdiff;h=c7bec8a318…
Module: check_mk
Branch: master
Commit: 51075a9c37997bca34a57afee5dcb88cc5787329
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=51075a9c37997b…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Jul 3 10:38:28 2012 +0200
Add variable CONTACTPAGER to allowed macros in notifications
---
ChangeLog | 1 +
check_mk_templates.cfg | 1 +
web/plugins/wato/globals_notification.py | 1 +
3 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index ea14d5b..93837a1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -48,6 +48,7 @@
* FIX: fixed problem with disabled sites in WATO
* FIX: massive speedup when changing roles/users and activing changes
(especially when you have a larger number of users and folders)
+ * Add variable CONTACTPAGER to allowed macros in notifications
BI:
* New iterators FOREACH_CHILD and FOREACH_PARENT
diff --git a/check_mk_templates.cfg b/check_mk_templates.cfg
index b1879b3..ec5f600 100644
--- a/check_mk_templates.cfg
+++ b/check_mk_templates.cfg
@@ -309,6 +309,7 @@ define command {
command_line \
NOTIFY_CONTACTNAME='$CONTACTNAME$' \
NOTIFY_CONTACTEMAIL='$CONTACTEMAIL$' \
+ NOTIFY_CONTACTPAGER='$CONTACTPAGER$' \
NOTIFY_NOTIFICATIONTYPE='$NOTIFICATIONTYPE$' \
NOTIFY_HOSTNAME='$HOSTNAME$' \
NOTIFY_HOSTALIAS='$HOSTALIAS$' \
diff --git a/web/plugins/wato/globals_notification.py b/web/plugins/wato/globals_notification.py
index af3db6c..f97441a 100644
--- a/web/plugins/wato/globals_notification.py
+++ b/web/plugins/wato/globals_notification.py
@@ -98,6 +98,7 @@ register_configvar(group,
"The following macros are available in all templates:<br><br>"
"<tt><b>$CONTACTNAME$</b></tt>: login name of the contact person, "
"<tt><b>$CONTACTEMAIL$</b></tt>: email address of the contact person, "
+ "<tt><b>$CONTACTPAGER$</b></tt>: pager address of the contact person, "
"<tt><b>$NOTIFICATIONTYPE$</b></tt>: one of PROBLEM, RECOVERY, ACKNOWLEDGEMENT, FLAPPINGSTART, FLAPPINGSTOP, FLAPPINGDISABLED, DOWNTIMESTART, DOWNTIMEEND, or DOWNTIMECANCELLED, "
"<tt><b>$HOSTNAME$</b></tt>: the name of the host, "
"<tt><b>$HOSTALIAS$</b></tt>: the alias of the host, "
Module: check_mk
Branch: master
Commit: ffd8da5930f2abb85f02b5470dde5184f1f00f76
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=ffd8da5930f2ab…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Jul 2 16:17:17 2012 +0200
FIX: Precisely define order of reading of configuration files.
---
ChangeLog | 2 ++
modules/check_mk.py | 19 ++++++++++++++++++-
2 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index d58677d..ea14d5b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
Core:
* simulation_mode: legacy_checks, custom_checks and active_checks
are replaced with dummy checks always being OK
+ * FIX: Precisely define order of reading of configuration files. This
+ fixes a WATO rule precedence problem
Checks & Agents:
* FIX: Fixed syntax errors in a bunch of man pages
diff --git a/modules/check_mk.py b/modules/check_mk.py
index 2c5725a..8f9dbe9 100755
--- a/modules/check_mk.py
+++ b/modules/check_mk.py
@@ -4229,6 +4229,22 @@ def marks_hosts_with_path(old, all, filename):
if host not in old:
host_paths[host] = path
+# Helper functions that determines the sort order of the
+# configuration files. The following two rules are implemented:
+# 1. *.mk files in the same directory will be read
+# according to their lexical order.
+# 2. subdirectories in the same directory will be
+# scanned according to their lexical order.
+# 3. subdirectories of a directory will always be read *after*
+# the *.mk files in that directory.
+def cmp_config_paths(a, b):
+ pa = a.split('/')
+ pb = b.split('/')
+ return cmp(pa[:-1], pb[:-1]) or \
+ cmp(len(pa), len(pb)) or \
+ cmp(pa, pb)
+
+
def read_config_files(with_autochecks=True, with_conf_d=True):
global vars_before_config, final_mk, local_mk, checks
@@ -4243,7 +4259,8 @@ def read_config_files(with_autochecks=True, with_conf_d=True):
list_of_files = reduce(lambda a,b: a+b,
[ [ "%s/%s" % (d, f) for f in fs if f.endswith(".mk")]
for d, sb, fs in os.walk(check_mk_configdir) ], [])
- list_of_files.sort()
+ # list_of_files.sort()
+ list_of_files.sort(cmp = cmp_config_paths)
list_of_files = [ check_mk_configfile ] + list_of_files
else:
list_of_files = [ check_mk_configfile ]
Module: check_mk
Branch: master
Commit: 45a9614cfaee3e89d8b93f750ac8f143cbcf2469
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=45a9614cfaee3e…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Jul 2 13:56:06 2012 +0200
Updated bug entries #0781
---
.bugs/781 | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/.bugs/781 b/.bugs/781
new file mode 100644
index 0000000..efd7c29
--- /dev/null
+++ b/.bugs/781
@@ -0,0 +1,22 @@
+Title: Setting default_language = "de" in multisite.mk breaks all
+Component: multisite
+State: open
+Date: 2012-07-02 13:55:03
+Targetversion: 1.2.0
+Class: bug
+
+Try: set default_language = "de" in multisite.mk. But do not
+provide a language file. The result is an exception:
+
+Internal error None (/de) 13:54
+index.py?debug=1
+Internal error:: global name 'config' is not defined
+
+Traceback (most recent call last):
+ File "/omd/sites/opf/share/check_mk/web/htdocs/index.py", line 272, in handler
+ load_language(html.var("lang", config.get_language()))
+ File "/omd/sites/opf/share/check_mk/web/htdocs/lib.py", line 197, in load_language
+ __builtin__.current_language = config.default_language
+NameError: global name 'config' is not defined
+
+[URL to this frame] [URL to this page including sidebar]
Module: check_mk
Branch: master
Commit: fc012630e20f4ca6d0e8e5dcd21acd01defcbe35
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=fc012630e20f4c…
Author: Florian Heigl <fh(a)mathias-kettner.de>
Date: Fri Jun 29 16:22:08 2012 +0200
Solaris Agent: Beautify agent and bugfix for solaris_multipath
---
agents/check_mk_agent.solaris | 37 ++++++++++++++++++++++++-------------
checks/solaris_multipath | 8 ++++----
2 files changed, 28 insertions(+), 17 deletions(-)
diff --git a/agents/check_mk_agent.solaris b/agents/check_mk_agent.solaris
index f346cb3..a1bf441 100755
--- a/agents/check_mk_agent.solaris
+++ b/agents/check_mk_agent.solaris
@@ -27,9 +27,8 @@
export LC_ALL=C
unset LANG
-MK_LIBDIR="/change/me"
-MK_CONFDIR="/change/me"
-export MK_LIBDIR MK_CONFDIR
+export MK_LIBDIR="/change/me"
+export MK_CONFDIR="/change/me"
# All executables in PLUGINSDIR will simply be executed and their
# ouput appended to the output of the agent. Plugins define their own
@@ -45,6 +44,20 @@ echo '<<<check_mk>>>'
echo Version: 1.2.0p2
echo AgentOS: solaris
+
+# Find out what type of system we run.
+# A standard Zone that will not have hardware of any kind?
+# A Global Zone with hardware?
+if type zonename > /dev/null 2>&1 ; then
+ if [ `zonename` = "global" ]; then
+ platform="global_zone"
+ else
+ platform="zone"
+else
+# Otherwise we have a normal or hard-partitioned system
+ platform="hardware"
+fi
+
echo '<<<df>>>'
for fs in ufs zfs vxfs
do
@@ -63,15 +76,10 @@ ps -A -o user,vsz,rss,pcpu,args | sed -e 1d -e 's/ *\([^ ]*\) *\([^ ]*\) *\([^ ]
# You need statgrab to be installed. You'll find it
# here: http://www.i-scream.org/libstatgrab/
-# Only collect net stats if we are in a global zone
statgrab_vars="const. cpu. disk. general. mem. page. proc. swap. user."
statgrab_sections="proc cpu disk page"
-if which zonename > /dev/null; then
- if [ "`zonename`" = "global" ]; then
- statgrab_vars="$statgrab_vars .net"
- statgrab_sections="$statgrab_sections net"
- fi
-else
+# Only collect net stats if we aren't in a unpriv. zone.
+if [ "$platform" != "zone" ]; then
statgrab_vars="$statgrab_vars .net"
statgrab_sections="$statgrab_sections net"
fi
@@ -118,13 +126,16 @@ fi
# TCP Connection stats
echo '<<<tcp_conn_stats>>>'
-netstat -nafinet -P tcp | tail +5 | awk '{ c[$7]++; } END { for (x in c) { print x, c[x];}}'
+netstat -nafinet -P tcp | tail +5 | \
+awk '{ c[$7]++; } END { for (x in c) { print x, c[x];}}'
# Multipathing on Solaris10+
-if type mpathadm >/dev/null 2>&1 ; then
+if [ "$platform" != "zone" ]; then
echo '<<<solaris_multipath>>>'
- mpathadm list LU | awk '{if(NR%3==1){dev=$1}if(NR%3==2){tc=$NF}if(NR%3==2){printf "%s %s %s\n",dev,tc,$NF}}'
+ mpathadm list LU | awk '{if(NR%3==1){dev=$1}
+ if(NR%3==2){tc=$NF}
+ if(NR%3==0){printf "%s %s %s\n",dev,tc,$NF}}'
fi
diff --git a/checks/solaris_multipath b/checks/solaris_multipath
index b41cef8..4c46839 100644
--- a/checks/solaris_multipath
+++ b/checks/solaris_multipath
@@ -31,14 +31,14 @@ def check_solaris_multipath(item, params, info):
for line in info:
if line[0].split('/')[-1] == item:
total, ok = map(int, line[1:3])
- if total > ok and (100 / total) * ok <= 50:
- return(2, "CRIT - only %d/%d paths up" % (ok, total))
- elif total == ok:
+ if total == ok:
return(0, "OK - %d paths up" % total)
+ elif total > ok and (100 / total) * ok <= 50:
+ return(2, "CRIT - only %d/%d paths up" % (ok, total))
else:
return(1, "WARN - only %d/%d paths up" % (ok, total))
- return(2, "UKN - Path not found")
+ return(2, "UNKNOWN - Path not found")
check_info["solaris_multipath"] = {
"check_function" : check_solaris_multipath,
Module: check_mk
Branch: master
Commit: 7ea4bc4f68a81dbb3cde5e9941b647eae03e65d1
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=7ea4bc4f68a81d…
Author: Florian Heigl <fh(a)mathias-kettner.de>
Date: Fri Jun 29 16:13:49 2012 +0200
Check for AIX LVM volumes (only rootvg by default)
---
ChangeLog | 1 +
agents/check_mk_agent.aix | 5 ++
checkman/aix_lvm | 25 +++++++
checks/aix_lvm | 152 +++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 183 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 046a096..dac646e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -25,6 +25,7 @@
(thanks to Sebastian Talmon)
* FIX: winperf_phydisk: Fix typo (lead to WATO rule not being applied)
* Windows agent: new [global] option crash_debug (see online docu)
+ * AIX agent: new check for LVM volume status in rootvg.
Multisite:
* Show number of rows and number of selected rows in header line
diff --git a/agents/check_mk_agent.aix b/agents/check_mk_agent.aix
index 8056005..beaa35c 100755
--- a/agents/check_mk_agent.aix
+++ b/agents/check_mk_agent.aix
@@ -95,6 +95,11 @@ fi
echo '<<<aix_multipath>>>'
lspath -F"name parent status"
+echo '<<<aix_lvm>>>'
+ # -L disables LVM lock for the query. Avoids blocking while LVM is
+ # doing changes. For rootvg that is fine.
+ lsvg -L -l rootvg
+
echo '<<<tcp_conn_stats>>>'
netstat -ntfinet | awk ' /^tcp/ { c[$6]++; } END { for (x in c) { print x, c[x]; } }'
diff --git a/checkman/aix_lvm b/checkman/aix_lvm
new file mode 100644
index 0000000..b1510e8
--- /dev/null
+++ b/checkman/aix_lvm
@@ -0,0 +1,25 @@
+title: Check mirror state of LVM logical volumes on HP-UX
+agents: aix
+author: Florian Heigl <fh(a)mathias-kettner.de>
+license: GPL
+distribution: check_mk
+description:
+ This check monitors the mirror state of LVM logical volumes in the
+ root volumegroup on AIX.
+
+ It makes sure that all logical volumes are in the the {open,syncd}
+ state. If a LV is in state {closed}, the check will give a {WARN}
+ message to inform you.
+ Exception: LVs of type {boot} are OK if they are in state {closed}
+
+ It detects mirrored LVs and alerts with a {WARN} state, if there are
+ obvious allocation errors, or a {CRIT} state, if the volume state is
+ not {syncd}.
+
+item:
+ The name path of the VG and LV (e.g. {"rootvg/hd10"}).
+
+inventory:
+ On service is created for each logical volume in rootvg.
+ If the agent is modified to report volumes from other volume groups,
+ those will also be monitored.
diff --git a/checks/aix_lvm b/checks/aix_lvm
new file mode 100644
index 0000000..d658ff0
--- /dev/null
+++ b/checks/aix_lvm
@@ -0,0 +1,152 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2012 mk(a)mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at http://mathias-kettner.de/check_mk.
+#
+# check_mk 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 in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# ails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+# Agent output and things to know:
+
+# hd5 boot 1 2 2 closed/syncd N/A
+# hd6 paging 65 130 2 open/syncd N/A
+# hd8 jfs2log 1 2 2 open/syncd N/A
+# hd4 jfs2 1 2 2 open/syncd /
+# hd2 jfs2 5 10 2 open/syncd /usr
+# hd9var jfs2 3 6 2 open/syncd /var
+# hd3 jfs2 2 4 2 open/syncd /tmp
+# hd1 jfs2 1 2 2 open/syncd /home
+# hd10opt jfs2 3 6 2 open/syncd /opt
+# hd11admin jfs2 1 2 2 open/syncd /admin
+# lg_dumplv sysdump 6 6 1 open/syncd N/A
+# livedump jfs2 1 2 2 open/syncd /var/adm/ras/livedump
+# lvwork jfs2 1 2 2 open/syncd /work
+# lvbackup jfs2 200 200 1 open/syncd /backup
+# fwdump jfs2 5 5 1 open/syncd /var/adm/ras/platform
+# lvoracle jfs2 30 30 1 open/syncd /oracle
+
+# hd5 which contains the boot kernel is normally always closed (but it doesn't
+# matter IF it's closed.
+
+# row3: 1 means it alloceted one lvm logical extent (called partition on AIX), so
+# it's likely 256MB in size.
+# row4: 2 means it uses two physical extents. So if it uses two physical for
+# one logical ... yeah, a mirror
+
+# row5: 2 means that the volume uses two physical volumes to store those
+# extents. So the mirror isn't on the same disk if it dies.
+
+# row6: here open/syncd is OK for every active volume
+
+#lvmconf = {
+# rootvg : {
+# hd5 : ("boot", 1, 2, 2, "closed/syncd", None)
+# hd4 : ("/", 1, 2, 2, "open/syncd", "/")
+# }
+#}
+
+def parse_aix_lvm(info):
+ lvmconf = {}
+ for line in info:
+ if len(line) == 1:
+ vgname = line[0][:-1]
+ lvmconf.update({ vgname : {} })
+ else:
+ lv, lvtype, num_lp, num_pp, num_pv, act_state, mountpoint = line
+ # split lv state into two relevant values
+ activation, mirror = act_state.split("/")
+ if mountpoint == "N/A":
+ mountpoint = None
+ lvmconf[vgname].update( {
+ lv : (lvtype, int(num_lp), int(num_pp), int(num_pv),
+ activation, mirror, mountpoint)
+ })
+ return lvmconf
+
+
+def inventory_aix_lvm(info):
+ inventory = []
+ lvmconf = parse_aix_lvm(info)
+ for vg in lvmconf.keys():
+ for lv in lvmconf[vg].keys():
+ #inventory.append(("%s/%s" % (vg, lv), ('%s' % lvmconf[vg][lv][4],)))
+ inventory.append(("%s/%s" % (vg, lv), None))
+ return inventory
+
+
+def check_aix_lvm(item, _no_params, info):
+
+ # Get ready to find our item and settings.
+ #target_activation = params
+ target_vg, target_lv = item.split("/")
+
+ # Get structured LVM info
+ lvmconf = parse_aix_lvm(info)
+
+ if target_lv in lvmconf[target_vg].keys():
+ msgtxt = []
+ state = 0
+
+ lvtype, num_lp, num_pp, num_pv, activation, mirror, mountpoint = lvmconf[target_vg][target_lv]
+
+ # Test if the volume is mirrored.
+ # Yes? Test for an even distribution of PP's over volumes.
+ # This is cannot detect crossover misaligns and other bad practices.
+ if num_pp / num_lp > 1:
+ if not num_pp / num_pv == num_lp:
+ msgtxt.append( "LV Mirrors are misaligned between physical volumes(!)" )
+ state = max(state, 1)
+
+ # If it's not the boot volume I suspect it should be open.
+ # This may need to be changed for some scenarios
+ if lvtype != "boot":
+ if activation != "open": # and activation != target_activation:
+ msgtxt.append("LV is not opened(!)")
+ state = max(state, 1)
+
+ # Detect any, not just mirrored, volumes, that have stale PPs.
+ # This means either a disk write failure causing a mirror to go stale
+ # or some kind of split mirror backup.
+ if mirror != "syncd":
+
+ msgtxt.append("LV is not in sync state(!!)")
+ state = max(state, 2)
+
+ if state == 0:
+ msgtxt = "LV is open/syncd"
+ else:
+ msgtxt = ", ".join(msgtxt)
+ return (state, nagios_state_names[state] + " - " + msgtxt)
+
+
+ return (3, "UNKNOWN - no such volume found")
+
+
+check_info['aix_lvm'] = {
+ "check_function" : check_aix_lvm,
+ "inventory_function" : inventory_aix_lvm,
+ "service_description": "Logical Volume %s",
+ "has_perfdata" : False,
+ # "group" : "",
+ # "default_levels_variable" : "services_default_levels",
+ # first check we have a vendor mib from W&T, then check for the model in their MIB.
+}
+