Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 May 2019 14:27:14 +0000 (UTC)
From:      Kubilay Kocak <koobs@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r502340 - in head/net-mgmt/nagios-check_smartmon: . files
Message-ID:  <201905231427.x4NEREf5036826@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: koobs
Date: Thu May 23 14:27:14 2019
New Revision: 502340
URL: https://svnweb.freebsd.org/changeset/ports/502340

Log:
  net-mgmt/nagios-check_smartmon: Fix ValueError with some drive values
  
  After upgrading to version 20100318_4, users reported ValueError for
  some disks [1]
  
  Also fix Python 3.x compatibility [2]
  
  While I'm here:
  
    - Pet portlint, NO_* in USE{S} section
    - Make concurrent-safe, installs executables in libexec
  
  PR:		236873
  Reported by:	Thomas Eckhardt <freebsd eckieck de> [1]
  Submitted by:	Thomas Eckhardt <freebsd eckieck de> [1]
  Submitted by:	Krzysztof <ports bsdserwis com> (maintainer) [2]
  Approved by:	Krzysztof <ports bsdserwis com> (maintainer)
  MFH:		2019Q2 (bugfixes)

Modified:
  head/net-mgmt/nagios-check_smartmon/Makefile
  head/net-mgmt/nagios-check_smartmon/files/patch-check_smartmon

Modified: head/net-mgmt/nagios-check_smartmon/Makefile
==============================================================================
--- head/net-mgmt/nagios-check_smartmon/Makefile	Thu May 23 12:37:44 2019	(r502339)
+++ head/net-mgmt/nagios-check_smartmon/Makefile	Thu May 23 14:27:14 2019	(r502340)
@@ -7,6 +7,7 @@ PORTREVISION=	4
 CATEGORIES=	net-mgmt
 MASTER_SITES=	http://ftp.bsdserwis.com/pub/FreeBSD/ports/distfiles/
 PKGNAMEPREFIX=	nagios-
+PKGNAMESUFFIX=	${PYTHON_PKGNAMESUFFIX}
 
 MAINTAINER=	ports@bsdserwis.com
 COMMENT=	Nagios plug-in to get status from smartmontools
@@ -16,6 +17,8 @@ LICENSE=	GPLv2+
 RUN_DEPENDS=	${LOCALBASE}/sbin/smartctl:sysutils/smartmontools
 
 USES=		python shebangfix
+USE_PYTHON=	concurrent
+
 NO_BUILD=	yes
 NO_ARCH=	yes
 

Modified: head/net-mgmt/nagios-check_smartmon/files/patch-check_smartmon
==============================================================================
--- head/net-mgmt/nagios-check_smartmon/files/patch-check_smartmon	Thu May 23 12:37:44 2019	(r502339)
+++ head/net-mgmt/nagios-check_smartmon/files/patch-check_smartmon	Thu May 23 14:27:14 2019	(r502340)
@@ -1,21 +1,62 @@
---- check_smartmon.orig	2019-03-04 20:08:28 UTC
+--- check_smartmon.orig	2019-04-16 21:26:22 UTC
 +++ check_smartmon
-@@ -161,9 +161,12 @@ def parseOutput(healthMessage, temperatureMessage, dev
-                 lines = healthMessage.split("\n")
+@@ -52,8 +52,8 @@ def parseCmdLine(args):
+         version = "%%prog %s" % (__version__)
+ 
+         parser = OptionParser(usage=usage, version=version)
+-	parser.add_option("-d", "--device", action="store", dest="device", default="", metavar="DEVICE",
+-			help="device to check")
++        parser.add_option("-d", "--device", action="store", dest="device", default="", metavar="DEVICE",
++        		help="device to check")
+         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), \
+@@ -123,7 +123,7 @@ def callSmartMonTools(path, device):
+                                 "")
+         healthStatusOutput = ""
+         for line in child_stdout:
+-                healthStatusOutput = healthStatusOutput + line
++                healthStatusOutput = healthStatusOutput + line.decode('utf-8') 
+         # done
+ 
+         # get temperature
+@@ -138,7 +138,7 @@ def callSmartMonTools(path, device):
+ 
+         temperatureOutput = ""
+         for line in child_stdout:
+-                temperatureOutput = temperatureOutput + line
++                temperatureOutput = temperatureOutput + line.decode('utf-8')
+         # done
+ 
+         return (0 ,"", healthStatusOutput, temperatureOutput)
+@@ -153,6 +153,7 @@ def parseOutput(healthMessage, temperatu
+ 
+         vprint(3, "parseOutput: Device type is %s" % devType)
+ 
++        healthStatus = ""
+         if devType == "ata":
+                 # parse health status
+                 #
+@@ -162,13 +163,16 @@ def parseOutput(healthMessage, temperatu
                  getNext = 0
                  for line in lines:
-+                        vprint(3, "parseOutput: line is: '%s'" % line)
                          if getNext:
 -                                statusLine = 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" :
++                                if line != "SMART STATUS RETURN: incomplete response, ATA output registers missing" and \
++                                   line != "SMART Status not supported: Incomplete response, ATA output registers missing" :
 +                                        statusLine = line
 +                                        break
                          elif line == "=== START OF READ SMART DATA SECTION ===":
                                  getNext = 1
                          # fi
-@@ -181,7 +184,7 @@ def parseOutput(healthMessage, temperatureMessage, dev
+                 # done
+         
++                vprint(3, "parseOutput: statusLine is: '%s'" % statusLine )
+                 if getNext:
+                         parts = statusLine.split()
+                         healthStatus = parts[-1]
+@@ -181,7 +185,7 @@ def parseOutput(healthMessage, temperatu
                          parts = line.split()
                          if len(parts):
                                  # 194 is the temperature value id
@@ -24,7 +65,7 @@
                                          temperature = int(parts[9])
                                          break
                                  # fi
-@@ -190,9 +193,11 @@ def parseOutput(healthMessage, temperatureMessage, dev
+@@ -190,9 +194,11 @@ def parseOutput(healthMessage, temperatu
          # if devType == ata
  
          if devType == "scsi":
@@ -37,7 +78,7 @@
                          if stat_re.search( line ):
                                 parts = line.split()
                                 healthStatus = parts[-1]
-@@ -201,14 +206,20 @@ def parseOutput(healthMessage, temperatureMessage, dev
+@@ -201,19 +207,25 @@ def parseOutput(healthMessage, temperatu
                  # done
  
                  # get temperature from temperatureMessage
@@ -60,15 +101,39 @@
                  # done
                                  
          # if devType == scsi
-@@ -225,6 +236,7 @@ def createReturnInfo(healthStatus, temperature, warnin
  
+-	vprint(3, "Health status: %s" % healthStatus)
++        vprint(3, "Health status: %s" % healthStatus)
+         vprint(3, "Temperature: %d" %temperature)
+ 
+         return (healthStatus, temperature)
+@@ -225,6 +237,7 @@ def createReturnInfo(healthStatus, tempe
+ 
          # 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
  
-@@ -287,6 +299,7 @@ if __name__ == "__main__":
+@@ -241,7 +254,7 @@ def createReturnInfo(healthStatus, tempe
+ def exitWithMessage(value, message):
+         """Exit with given value and status message."""
+ 
+-        print message
++        print( message )
+         sys.exit(value)
+ # end
+ 
+@@ -254,7 +267,7 @@ def vprint(level, message):
+         """
+ 
+         if level <= verbosity:
+-                print message
++                print( message )
+         # fi
+ # end
+ 
+@@ -287,6 +300,7 @@ if __name__ == "__main__":
          # check device type, ATA is default
          vprint(2, "Get device type")
          devtype = options.devtype



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201905231427.x4NEREf5036826>