116 lines
4.3 KiB
Python
116 lines
4.3 KiB
Python
#!/usr/bin/python
|
|
# -*- encoding: utf-8; py-indent-offset: 4 -*-
|
|
# +------------------------------------------------------------------+
|
|
# | ____ _ _ __ __ _ __ |
|
|
# | / ___| |__ ___ ___| | __ | \/ | |/ / |
|
|
# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
|
|
# | | |___| | | | __/ (__| < | | | | . \ |
|
|
# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
|
|
# | |
|
|
# | Copyright Mathias Kettner 2017 mk@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-
|
|
# tails. 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.
|
|
|
|
|
|
|
|
# <<<storeonce_stores:sep(9)>>>
|
|
# [1/0]
|
|
# Store ID 0
|
|
# Name VM_WinSrv_Store
|
|
# Description Catalyst Store for Windows based Server
|
|
# ServiceSet ID 1
|
|
# Creation Time UTC 1434446799
|
|
# Health Level 1
|
|
# Health OK
|
|
# Status Online
|
|
# Version 2
|
|
# Number Of Catalyst Items 274
|
|
# User Data Stored 1467.568399314
|
|
# Size On Disk 604.827284898
|
|
# Dedupe Ratio 2.4
|
|
# Dedupe Ratio 2.4
|
|
# Creation On 2015-06-16T09:26:39Z
|
|
# Last Modified 2015-06-16T09:26:39Z
|
|
# primaryTransferPolicy 0
|
|
# primaryTransferPolicyString High Bandwidth
|
|
# secondaryTransferPolicy 1
|
|
# secondaryTransferPolicyString Low Bandwidth
|
|
# userDataSizeLimitBytes 0
|
|
# dedupedDataSizeOnDiskLimitBytes 0
|
|
# dataJobRetentionDays 90
|
|
# inboundCopyJobRetentionDays 90
|
|
# outboundCopyJobRetentionDays 90
|
|
# supportStorageModeVariableBlockDedupe true
|
|
# supportStorageModeFixedBlockDedupe true
|
|
# supportStorageModeNoDedupe true
|
|
# supportWriteSparse false
|
|
# supportWriteInPlace false
|
|
# supportRawReadWrite true
|
|
# supportMultipleObjectOpeners true
|
|
# supportMultipleObjectWrites false
|
|
# supportCloneExtent true
|
|
# userBytes 1467568399314
|
|
# diskBytes 604827284898
|
|
# numItems 274
|
|
# numDataJobs 2536
|
|
# numOriginCopyJobs 0
|
|
# numDestinationCopyJobs 0
|
|
# Is online true
|
|
# is store encrypted false
|
|
# secure erase mode 0
|
|
# secure erase mode description Secure_Erase_NoPassCount
|
|
# isTeamed false
|
|
# teamUUID 0000014DFBB121BB2954110834BAD600
|
|
# numTeamMembers 0
|
|
|
|
|
|
def inventory_storeonce_stores(parsed):
|
|
for key, values in parsed.iteritems():
|
|
yield ("ServiceSet %s Store %s" % \
|
|
(values["ServiceSet ID"], values["Name"]), \
|
|
{})
|
|
|
|
|
|
def check_storeonce_stores(item, params, parsed):
|
|
for key, values in parsed.iteritems():
|
|
item_name = "ServiceSet %s Store %s" % \
|
|
(values["ServiceSet ID"], values["Name"])
|
|
if not item == item_name:
|
|
continue
|
|
|
|
state = translate_storeonce_status(values["Health Level"])
|
|
size = float(values["diskBytes"])
|
|
yield state, "Status: %s, Size: %s" % \
|
|
(values["Status"], get_bytes_human_readable(size)), \
|
|
[ ("data_size", size) ]
|
|
|
|
if "Dedupe Ratio" in values:
|
|
dedup = float(values["Dedupe Ratio"])
|
|
yield 0, "Dedup ratio: %.2f" % dedup, \
|
|
[ ( "dedup_rate", dedup) ]
|
|
if not values["Description"] == "":
|
|
yield 0, "Description: %s" % values["Description"]
|
|
|
|
|
|
check_info['storeonce_stores'] = {
|
|
'parse_function' : parse_storeonce_servicesets,
|
|
'inventory_function' : inventory_storeonce_stores,
|
|
'check_function' : check_storeonce_stores,
|
|
'service_description' : '%s',
|
|
'has_perfdata' : True,
|
|
'includes' : [ "storeonce.include" ],
|
|
}
|