Date: Fri, 22 Feb 2019 11:30:36 +1300 From: Pierre Guinoiseau <pierre@guinoiseau.nz> To: Dan Langille <dvl@FreeBSD.org> Cc: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: Re: svn commit: r493266 - in head/net-mgmt/nagios-check_smartmon: . files Message-ID: <FBE322F5-17F1-4C2F-B91F-CD2656C01F08@guinoiseau.nz> In-Reply-To: <CF83B2C0-D00E-4831-9102-E863D8AE2BD1@FreeBSD.org> References: <201902181508.x1IF8lhS049907@repo.freebsd.org> <7563B519-9277-4AEC-A1C1-FED1B469C3D7@guinoiseau.nz> <CF83B2C0-D00E-4831-9102-E863D8AE2BD1@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Same thing: $ sudo python2.7 /usr/local/libexec/nagios/check_smartmon -w 45 -c 60 -d = /dev/da0 Traceback (most recent call last): File "/usr/local/libexec/nagios/check_smartmon", line 309, in <module> (healthStatus, temperature) =3D parseOutput(healthStatusOutput, = temperatureOutput, devtype) File "/usr/local/libexec/nagios/check_smartmon", line 220, in = parseOutput vprint(3, "Temperature: %d" %temperature) UnboundLocalError: local variable 'temperature' referenced before = assignment Note that this is on a virtual machine where there is no actual SMART = data available, smartctl returns only this: =3D=3D=3D START OF READ SMART DATA SECTION =3D=3D=3D Current Drive Temperature: 0 C Drive Trip Temperature: 0 C While it doesn=E2=80=99t make much sense to have this check in the case = of a virtual machine (and I should probably disable it), it didn=E2=80=99t= error out before and was returning "OK: device is functional and stable = (temperature: 0)=E2=80=9D. > On 22/02/2019, at 10:53, Dan Langille <dvl@FreeBSD.org> wrote: >=20 >> On Feb 21, 2019, at 4:33 PM, Pierre Guinoiseau <pierre@guinoiseau.nz> = wrote: >>=20 >> Hi, >>=20 >> I=E2=80=99m getting this error now after this change: >>=20 >> Info: Traceback (most recent call last): >> File "/usr/local/libexec/nagios/check_smartmon", line 309, in = <module> >> (healthStatus, temperature) =3D parseOutput(healthStatusOutput, = temperatureOutput, devtype) >> File "/usr/local/libexec/nagios/check_smartmon", line 220, in = parseOutput >> vprint(3, "Temperature: %d" %temperature) >> UnboundLocalError: local variable 'temperature' referenced before = assignment >=20 > Sorry. >=20 > When you invoke this from the command line, can you paste the command = and the output please? >=20 >>=20 >> Cheers, >> Pierre >>=20 >>> On 19/02/2019, at 04:08, Dan Langille <dvl@FreeBSD.org> wrote: >>>=20 >>> Author: dvl >>> Date: Mon Feb 18 15:08:46 2019 >>> New Revision: 493266 >>> URL: https://svnweb.freebsd.org/changeset/ports/493266 >>>=20 >>> Log: >>> Patch check_smartmon to cater for changed smartctl output >>>=20 >>> We previously patched the code to look for: >>>=20 >>> SMART STATUS RETURN: incomplete response, ATA output registers = missing >>>=20 >>> That line is now: >>>=20 >>> SMART Status not supported: Incomplete response, ATA output = registers missing >>>=20 >>> It also seems like the temperature has moved from part 190 to 194. >>>=20 >>> PR: 235475 >>> Approved by: Krzysztof (maintainer) >>> MFH: 2019Q1 >>>=20 >>> Modified: >>> head/net-mgmt/nagios-check_smartmon/Makefile >>> head/net-mgmt/nagios-check_smartmon/files/patch-check_smartmon >>>=20 >>> Modified: head/net-mgmt/nagios-check_smartmon/Makefile >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/net-mgmt/nagios-check_smartmon/Makefile Mon Feb 18 = 15:01:50 2019 (r493265) >>> +++ head/net-mgmt/nagios-check_smartmon/Makefile Mon Feb 18 = 15:08:46 2019 (r493266) >>> @@ -3,7 +3,7 @@ >>>=20 >>> PORTNAME=3D check_smartmon >>> PORTVERSION=3D 20100318 >>> -PORTREVISION=3D 2 >>> +PORTREVISION=3D 3 >>> CATEGORIES=3D net-mgmt >>> MASTER_SITES=3D = http://ftp.bsdserwis.com/pub/FreeBSD/ports/distfiles/ >>> PKGNAMEPREFIX=3D nagios- >>>=20 >>> Modified: = head/net-mgmt/nagios-check_smartmon/files/patch-check_smartmon >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/net-mgmt/nagios-check_smartmon/files/patch-check_smartmon = Mon Feb 18 15:01:50 2019 (r493265) >>> +++ head/net-mgmt/nagios-check_smartmon/files/patch-check_smartmon = Mon Feb 18 15:08:46 2019 (r493266) >>> @@ -1,26 +1,42 @@ >>> ---- check_smartmon.orig 2015-07-22 17:32:58 UTC >>> -+++ check_smartmon >>> -@@ -59,7 +59,7 @@ def parseCmdLine(args): >>> - metavar=3D"LEVEL", help=3D"set verbosity = level to LEVEL; defaults to 0 (quiet), \ >>> - possible values go up to = 3") >>> - parser.add_option("-t", "--type", action=3D"store", = dest=3D"devtype", default=3D"ata", metavar=3D"DEVTYPE", >>> -- help=3D"type of device (ATA|SCSI)") >>> -+ help=3D"type of device (ata|scsi)") >>> - parser.add_option("-w", "--warning-threshold", = metavar=3D"TEMP", action=3D"store", >>> - type=3D"int", dest=3D"warningThreshold", = default=3D55, >>> - help=3D"set temperature warning threshold = to given temperature (defaults to 55)") >>> -@@ -291,10 +291,10 @@ if __name__ =3D=3D "__main__": >>> +--- check_smartmon.orig 2019-02-01 04:28:13.000000000 +0000 >>> ++++ check_smartmon 2019-02-04 22:27:35.297345000 +0000 >>> +@@ -161,9 +161,12 @@=20 >>> + lines =3D healthMessage.split("\n") >>> + getNext =3D 0 >>> + for line in lines: >>> ++ vprint(3, "parseOutput: line is: '%s'" % = line) >>> + if getNext: >>> +- statusLine =3D line >>> +- break >>> ++ if line <> "SMART STATUS RETURN: = incomplete response, ATA output registers missing" and \ >>> ++ line <> "SMART Status not = supported: Incomplete response, ATA output registers missing" : >>> ++ statusLine =3D line >>> ++ break >>> + elif line =3D=3D "=3D=3D=3D START OF READ = SMART DATA SECTION =3D=3D=3D": >>> + getNext =3D 1 >>> + # fi >>> +@@ -181,7 +184,7 @@=20 >>> + parts =3D line.split() >>> + if len(parts): >>> + # 194 is the temperature value id >>> +- if parts[0] =3D=3D "194": >>> ++ if parts[0] =3D=3D "194" or = parts[0] =3D=3D "190": >>> + temperature =3D = int(parts[9]) >>> + break >>> + # fi >>> +@@ -225,6 +228,7 @@=20 >>> +=20 >>> + # this is absolutely critical! >>> + if healthStatus not in [ "PASSED", "OK" ]: >>> ++ vprint(2, "Health status: %s" % healthStatus) >>> + return (2, "CRITICAL: device does not pass health = status") >>> + # fi >>> +=20 >>> +@@ -287,6 +291,7 @@=20 >>> + # check device type, ATA is default >>> vprint(2, "Get device type") >>> devtype =3D options.devtype >>> ++ vprint(2, "command line supplied device type is: %s" % = devtype) >>> if not devtype: >>> -- devtype =3D "ATA" >>> -- >>> -- if device_re.search( device ): >>> -- devtype =3D "scsi" >>> -+ if device_re.search( device ): >>> -+ devtype =3D "scsi" >>> -+ else: >>> -+ devtype =3D "ata" >>> -=20 >>> - vprint(1, "Device type: %s" % devtype) >>> -=20 >>> + if device_re.search( device ): >>> + devtype =3D "scsi" >>> _______________________________________________ >>> svn-ports-all@freebsd.org mailing list >>> https://lists.freebsd.org/mailman/listinfo/svn-ports-all >>> To unsubscribe, send any mail to = "svn-ports-all-unsubscribe@freebsd.org" >>=20 >> =E2=80=94 >> Pierre Guinoiseau <pierre@guinoiseau.nz> >>=20 >=20 =E2=80=94 Pierre Guinoiseau <pierre@guinoiseau.nz>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FBE322F5-17F1-4C2F-B91F-CD2656C01F08>