Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F161347158
D30712.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
7 KB
Referenced Files
None
Subscribers
None
D30712.diff
View Options
Index: net-mgmt/nagios-check_smartmon/files/patch-check_smartmon
===================================================================
--- net-mgmt/nagios-check_smartmon/files/patch-check_smartmon
+++ net-mgmt/nagios-check_smartmon/files/patch-check_smartmon
@@ -1,6 +1,6 @@
---- check_smartmon.orig 2019-04-16 21:26:22 UTC
+--- check_smartmon.orig 2021-06-09 20:17:38 UTC
+++ check_smartmon
-@@ -52,8 +52,8 @@ def parseCmdLine(args):
+@@ -52,14 +52,14 @@ def parseCmdLine(args):
version = "%%prog %s" % (__version__)
parser = OptionParser(usage=usage, version=version)
@@ -11,6 +11,13 @@
parser.add_option("-v", "--verbosity", action="store",
dest="verbosity", type="int", default=0,
metavar="LEVEL", help="set verbosity level to LEVEL; defaults to 0 (quiet), \
+ possible values go up to 3")
+ parser.add_option("-t", "--type", action="store", dest="devtype", default="ata", metavar="DEVTYPE",
+- help="type of device (ATA|SCSI)")
++ help="type of device (ata|scsi)")
+ parser.add_option("-w", "--warning-threshold", metavar="TEMP", action="store",
+ type="int", dest="warningThreshold", default=55,
+ help="set temperature warning threshold to given temperature (defaults to 55)")
@@ -123,7 +123,7 @@ def callSmartMonTools(path, device):
"")
healthStatusOutput = ""
@@ -29,7 +36,7 @@
# done
return (0 ,"", healthStatusOutput, temperatureOutput)
-@@ -153,6 +153,7 @@ def parseOutput(healthMessage, temperatu
+@@ -153,6 +153,7 @@ def parseOutput(healthMessage, temperatureMessage, dev
vprint(3, "parseOutput: Device type is %s" % devType)
@@ -37,7 +44,7 @@
if devType == "ata":
# parse health status
#
-@@ -162,13 +163,16 @@ def parseOutput(healthMessage, temperatu
+@@ -162,13 +163,16 @@ def parseOutput(healthMessage, temperatureMessage, dev
getNext = 0
for line in lines:
if getNext:
@@ -56,7 +63,7 @@
if getNext:
parts = statusLine.split()
healthStatus = parts[-1]
-@@ -181,7 +185,7 @@ def parseOutput(healthMessage, temperatu
+@@ -181,7 +185,7 @@ def parseOutput(healthMessage, temperatureMessage, dev
parts = line.split()
if len(parts):
# 194 is the temperature value id
@@ -65,7 +72,7 @@
temperature = int(parts[9])
break
# fi
-@@ -190,9 +194,11 @@ def parseOutput(healthMessage, temperatu
+@@ -190,9 +194,11 @@ def parseOutput(healthMessage, temperatureMessage, dev
# if devType == ata
if devType == "scsi":
@@ -78,7 +85,7 @@
if stat_re.search( line ):
parts = line.split()
healthStatus = parts[-1]
-@@ -201,19 +207,25 @@ def parseOutput(healthMessage, temperatu
+@@ -201,39 +207,49 @@ def parseOutput(healthMessage, temperatureMessage, dev
# done
# get temperature from temperatureMessage
@@ -107,15 +114,36 @@
vprint(3, "Temperature: %d" %temperature)
return (healthStatus, temperature)
-@@ -225,6 +237,7 @@ def createReturnInfo(healthStatus, tempe
+ # end
+
+-def createReturnInfo(healthStatus, temperature, warningThreshold,
++def createReturnInfo(device, healthStatus, temperature, warningThreshold,
+ criticalThreshold):
+ """Create return information according to given thresholds."""
# this is absolutely critical!
if healthStatus not in [ "PASSED", "OK" ]:
+- return (2, "CRITICAL: device does not pass health status")
+ vprint(2, "Health status: %s" % healthStatus)
- return (2, "CRITICAL: device does not pass health status")
++ return (2, "CRITICAL: device (%s) does not pass health status" %device)
+ # fi
+
+ if temperature > criticalThreshold:
+- return (2, "CRITICAL: device temperature (%d) exceeds critical temperature threshold (%s)" % (temperature, criticalThreshold))
++ return (2, "CRITICAL: device (%s) temperature (%d) exceeds critical temperature threshold (%s)|TEMP=%d;%d;%d;"
++ % (device, temperature, criticalThreshold, temperature, warningThreshold, criticalThreshold))
+ elif temperature > warningThreshold:
+- return (1, "WARNING: device temperature (%d) exceeds warning temperature threshold (%s)" % (temperature, warningThreshold))
++ return (1, "WARNING: device (%s) temperature (%d) exceeds warning temperature threshold (%s)|TEMP=%d;%d;%d;"
++ % (device, temperature, warningThreshold, temperature, warningThreshold, criticalThreshold))
+ else:
+- return (0, "OK: device is functional and stable (temperature: %d)" % temperature)
++ return (0, "OK: device (%s) is functional and stable (temperature: %d)|TEMP=%d;%d;%d;"
++ % (device, temperature, temperature, warningThreshold, criticalThreshold))
# fi
+ # end
-@@ -241,7 +254,7 @@ def createReturnInfo(healthStatus, tempe
+@@ -241,7 +257,7 @@ def createReturnInfo(healthStatus, temperature, warnin
def exitWithMessage(value, message):
"""Exit with given value and status message."""
@@ -124,7 +152,7 @@
sys.exit(value)
# end
-@@ -254,7 +267,7 @@ def vprint(level, message):
+@@ -254,7 +270,7 @@ def vprint(level, message):
"""
if level <= verbosity:
@@ -133,11 +161,30 @@
# fi
# end
-@@ -287,6 +300,7 @@ if __name__ == "__main__":
+@@ -287,12 +303,13 @@ if __name__ == "__main__":
# check device type, ATA is default
vprint(2, "Get device type")
devtype = options.devtype
+ vprint(2, "command line supplied device type is: %s" % devtype)
if not devtype:
- devtype = "ATA"
-
+- devtype = "ATA"
++ if device_re.search( device ):
++ devtype = "scsi"
++ else:
++ devtype= "ata"
+
+- if device_re.search( device ):
+- devtype = "scsi"
+-
+ vprint(1, "Device type: %s" % devtype)
+
+ # call smartctl and parse output
+@@ -303,7 +320,7 @@ if __name__ == "__main__":
+ vprint(2, "Parse smartctl output")
+ (healthStatus, temperature) = parseOutput(healthStatusOutput, temperatureOutput, devtype)
+ vprint(2, "Generate return information")
+- (value, message) = createReturnInfo(healthStatus, temperature,
++ (value, message) = createReturnInfo(device, healthStatus, temperature,
+ options.warningThreshold, options.criticalThreshold)
+
+ # exit program
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Jul 4, 1:09 AM (3 h, 20 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34644381
Default Alt Text
D30712.diff (7 KB)
Attached To
Mode
D30712: net-mgmt/nagios-check_smartmon: adjust it to work with more drives
Attached
Detach File
Event Timeline
Log In to Comment