1
0
mirror of https://github.com/Napsty/check_esxi_hardware.git synced 2026-02-06 15:15:20 +01:00

7 Commits

Author SHA1 Message Date
Napsty
8aecf4e7d1 Change version number for public release 2015-01-19 16:48:38 +01:00
Claudio Kuenzler
60b03332f9 Fix NoneType element bug
Andreas Gottwald sent a patch which fixes an issue, when the CIM element was a "NoneType" element but the plugin wanted to read a string from it. 

    Traceback (most recent call last):
     File "./check_esxi_hardware.py", line 629, in <module>
    verboseoutput("  Element Name = "+elementName)
    TypeError: cannot concatenate 'str' and 'NoneType' objects
2015-01-15 15:13:47 +01:00
Claudio Kuenzler
16b07977ae Adapt date
The change for the chassis serial number was already prepared a few months ago but I only found time today to do the merge and the release. Therefore adapting the date in history and version variable to today (20150109)
2015-01-09 11:56:17 +01:00
Claudio Kuenzler
16e85dcc0c Merge pull request #10 from Napsty/chassissn
Added Serial Number for Chassis
2015-01-09 11:54:31 +01:00
Napsty
d67db0b2ff Fixed uninitialized variable isblade 2014-09-16 13:27:48 +02:00
Napsty
6abc24f522 Removed autoindent, added spaced instead 2014-09-09 17:30:55 +02:00
Napsty
629911c8de Output serial number of chassis if a blade server is checked 2014-09-09 17:28:53 +02:00

View File

@@ -24,7 +24,7 @@
# Copyright (c) 2008 David Ligeret # Copyright (c) 2008 David Ligeret
# Copyright (c) 2009 Joshua Daniel Franklin # Copyright (c) 2009 Joshua Daniel Franklin
# Copyright (c) 2010 Branden Schneider # Copyright (c) 2010 Branden Schneider
# Copyright (c) 2010-2014 Claudio Kuenzler # Copyright (c) 2010-2015 Claudio Kuenzler
# Copyright (c) 2010 Samir Ibradzic # Copyright (c) 2010 Samir Ibradzic
# Copyright (c) 2010 Aaron Rogers # Copyright (c) 2010 Aaron Rogers
# Copyright (c) 2011 Ludovic Hutin # Copyright (c) 2011 Ludovic Hutin
@@ -35,6 +35,7 @@
# Copyright (c) 2011 Ian Chard # Copyright (c) 2011 Ian Chard
# Copyright (c) 2012 Craig Hart # Copyright (c) 2012 Craig Hart
# Copyright (c) 2013 Carl R. Friend # Copyright (c) 2013 Carl R. Friend
# Copyright (c) 2015 Andreas Gottwald
# #
# The VMware 4.1 CIM API is documented here: # The VMware 4.1 CIM API is documented here:
# http://www.vmware.com/support/developer/cim-sdk/4.1/smash/cim_smash_410_prog.pdf # http://www.vmware.com/support/developer/cim-sdk/4.1/smash/cim_smash_410_prog.pdf
@@ -207,6 +208,14 @@
#@ Author : Claudio Kuenzler (www.claudiokuenzler.com) #@ Author : Claudio Kuenzler (www.claudiokuenzler.com)
#@ Reason : Another two workarounds for Dell systems (VGA Cable Pres 0, Add-in Card 4 PEM Presence 0) #@ Reason : Another two workarounds for Dell systems (VGA Cable Pres 0, Add-in Card 4 PEM Presence 0)
#@--------------------------------------------------- #@---------------------------------------------------
#@ Date : 20150109
#@ Author : Claudio Kuenzler (www.claudiokuenzler.com)
#@ Reason : Output serial number of chassis if a blade server is checked
#@---------------------------------------------------
#@ Date : 20150119
#@ Author : Andreas Gottwald
#@ Reason : Fix NoneType element bug
#@---------------------------------------------------
import sys import sys
import time import time
@@ -215,7 +224,7 @@ import re
import string import string
from optparse import OptionParser,OptionGroup from optparse import OptionParser,OptionGroup
version = '20140319' version = '20150119'
NS = 'root/cimv2' NS = 'root/cimv2'
@@ -315,6 +324,9 @@ ExitWarning = 1
ExitCritical = 2 ExitCritical = 2
ExitUnknown = 3 ExitUnknown = 3
# Special handling for blade servers
isblade = "no"
def dell_country(country): def dell_country(country):
if country == 'at': # Austria if country == 'at': # Austria
return 'at/de/' return 'at/de/'
@@ -621,6 +633,8 @@ for classe in ClassesToCheck :
for instance in instance_list : for instance in instance_list :
sensor_value = "" sensor_value = ""
elementName = instance['ElementName'] elementName = instance['ElementName']
if elementName is None :
elementName = 'Unknown'
elementNameValue = elementName elementNameValue = elementName
verboseoutput(" Element Name = "+elementName) verboseoutput(" Element Name = "+elementName)
@@ -642,6 +656,7 @@ for classe in ClassesToCheck :
man = 'Unknown Manufacturer' man = 'Unknown Manufacturer'
verboseoutput(" Manufacturer = "+man) verboseoutput(" Manufacturer = "+man)
SerialNumber = instance[u'SerialNumber'] SerialNumber = instance[u'SerialNumber']
SerialChassis = instance[u'SerialNumber']
if SerialNumber: if SerialNumber:
verboseoutput(" SerialNumber = "+SerialNumber) verboseoutput(" SerialNumber = "+SerialNumber)
server_info = man + ' ' server_info = man + ' '
@@ -655,6 +670,7 @@ for classe in ClassesToCheck :
SerialNumber = instance[u'SerialNumber'] SerialNumber = instance[u'SerialNumber']
if SerialNumber: if SerialNumber:
verboseoutput(" SerialNumber = "+SerialNumber) verboseoutput(" SerialNumber = "+SerialNumber)
isblade = "yes"
# Report detail of Numeric Sensors and generate nagios perfdata # Report detail of Numeric Sensors and generate nagios perfdata
@@ -813,6 +829,10 @@ if (urlise_country != '') :
SerialNumber = urlised_serialnumber(vendor,urlise_country,SerialNumber) SerialNumber = urlised_serialnumber(vendor,urlise_country,SerialNumber)
server_info = urlised_server_info(vendor,urlise_country,server_info) server_info = urlised_server_info(vendor,urlise_country,server_info)
# If this is a blade server, also output chassis serial number as additional info
if (isblade == "yes") :
SerialNumber += " Chassis S/N: %s " % (SerialChassis)
# Output performance data # Output performance data
perf = '|' perf = '|'
if perfdata: if perfdata: