#!/bin/bash

#############################################################################
# (c) 2011 Sven Velt <sven@velt.de                                          #
#          and team(ix) GmbH, Nuernberg, Germany                            #
#                                                                           #
# This file is part of "team(ix) Monitoring Plugins"                        #
# URL: http://oss.teamix.org/projects/monitoringplugins/                    #
#                                                                           #
# All rights reserved.                                                      #
# Redistribution and use in source and binary forms, with or without        #
# modification, are permitted provided that the following conditions        #
# are met:                                                                  #
# 1. Redistributions of source code must retain the above copyright         #
#    notice, this list of conditions and the following disclaimer.          #
# 2. Redistributions in binary form must reproduce the above copyright      #
#    notice, this list of conditions and the following disclaimer in the    #
#    documentation and/or other materials provided with the distribution.   #
# 3. The name of the copyright owner may not be used to endorse or          #
#    promote products derived from this software without specific prior     #
#    written permission.                                                    #
#                                                                           #
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR      #
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED            #
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE    #
# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,        #
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES        #
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR        #
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)        #
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,       #
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING     #
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE        #
# POSSIBILITY OF SUCH DAMAGE.                                               #
#############################################################################

# Works on:
# - SLES 11

# Does NOT work on:
# -

# From "/etc/sudoers" / "visudo":
# nagios ALL = NOPASSWD: /usr/bin/zypper ref,/usr/bin/zypper -q pchk

#
if [ ! -x /usr/bin/zypper ] ; then
	echo 'Zypper CRITICAL - Zypper not found!'
	exit 2
fi

# Refresh repositories
sudo /usr/bin/zypper ref >/dev/null 2>&1

zypper_out=$(sudo LANG=C /usr/bin/zypper -q pchk)
if ( echo "${zypper_out}" | grep -q "needed" ) ; then
	output=$(echo ${zypper_out} | cut -d "." -f 7)
	patches=$(echo ${output} | cut -d " " -f1)
	if [ ${patches} -gt 0 ] ; then
		secpatches=$(echo ${output} | cut -d "(" -f2|cut -d " " -f1)
		if [ -n "${secpatches}" ]; then
			if [ ${secpatches} -gt 0 ] ; then
				echo "Zypper CRITICAL - ${patches}"
				exit 2
			fi
			echo "Zypper WARNING - ${output}"
			exit 1
		fi
	fi
fi

echo "Zypper OK - No updates available"
exit 0