Hello community,
here is the log from the commit of package nagios-plugins-zypper for
openSUSE:Factory checked in at 2014-06-16 21:28:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nagios-plugins-zypper (Old)
and /work/SRC/openSUSE:Factory/.nagios-plugins-zypper.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nagios-plugins-zypper"
Changes:
--------
---
/work/SRC/openSUSE:Factory/nagios-plugins-zypper/nagios-plugins-zypper.changes
2013-10-08 10:56:23.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.nagios-plugins-zypper.new/nagios-plugins-zypper.changes
2014-06-16 21:28:19.000000000 +0200
@@ -1,0 +2,12 @@
+Fri Jun 13 09:34:00 UTC 2014 - [email protected]
+
+- update to 1.76:
+ + SLE 12 packages belong to "SUSE LLC <https://www.suse.com/>"
+
+-------------------------------------------------------------------
+Fri Jun 6 17:41:09 UTC 2014 - [email protected]
+
+- update to 1.75:
+ + check for local packages (installed not from a repository)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nagios-plugins-zypper.spec ++++++
--- /var/tmp/diff_new_pack.Xo5BUf/_old 2014-06-16 21:28:20.000000000 +0200
+++ /var/tmp/diff_new_pack.Xo5BUf/_new 2014-06-16 21:28:20.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package nagios-plugins-zypper
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012-2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
Summary: Nagios plugin for checking software updates
License: BSD-4-Clause
Group: System/Monitoring
-Version: 1.50
+Version: 1.76
Release: 0
Url: http://en.opensuse.org/Nagios-plugins-zypper
Source0: check_zypper.pl
@@ -43,7 +43,7 @@
%description
This plugin checks for software updates on systems that use package
-management systems based on the zypper command found in openSUSE.
+management systems based on the zypper command found in (open)SUSE.
It checks for security, recommended and optional patches and also for
optional package updates.
++++++ check_zypper.pl ++++++
--- /var/tmp/diff_new_pack.Xo5BUf/_old 2014-06-16 21:28:20.000000000 +0200
+++ /var/tmp/diff_new_pack.Xo5BUf/_new 2014-06-16 21:28:20.000000000 +0200
@@ -50,7 +50,7 @@
# constants
$PROGNAME = "check_zypper";
-$VERSION = '1.50';
+$VERSION = '1.76';
$DEBUG = 0;
# variables
@@ -69,6 +69,7 @@
our @patchignore = ();
our @packageignore = ();
our @packagewhitelist= ();
+our @localwhitelist = ();
our $patchlevel = 0;
our $exitcode = 0;
our %ERRORS = (
@@ -86,10 +87,10 @@
0 => 'OK',
);
our %supported_release = (
- 'openSUSE' => [ '12.1', '12.2', '12.3', '13.1' ],
- 'SLE' => [ '10.4', '11.2' , '11.3' ],
+ 'openSUSE' => [ '12.3', '13.1', '13.2' ],
+ 'SLE' => [ '10.4', '11.3', '12.0' ],
);
-$opt_w = 'recommended,optional,unsupported';
+$opt_w = 'recommended,optional,unsupported,local_package';
$opt_c = 'security';
$opt_f = "$releasefile";
$opt_t = '120';
@@ -181,7 +182,9 @@
print " package:libtiff3\n";
print " package:libtiff-devel\n";
print " # comment\n";
- print " whitelist:aaa_base\n\n";
+ print " whitelist:aaa_base\n";
+ print " # comment\n";
+ print " local_package:mypackage\n\n";
print " -o, --ignore_outdated\n";
print " Don't warn if a repository is outdated.\n";
print " -p, --no_perfdata\n";
@@ -201,6 +204,8 @@
print " -t, --timeout\n";
print " Just in case of problems, let's not hang Nagios and define a
timeout.\n";
print " Default value is: $opt_t seconds\n";
+ print " -u, --check-vendor\n";
+ print " Check if installed packages are not from a supported
vendor.\n";
print " -v, --verbose_output\n";
print " Print more information (useful only with Nagios v3.x).\n";
print " -w, --warning\n";
@@ -216,7 +221,7 @@
sub print_help {
my $exit = shift || undef;
- print "Copyright (c) 2009, Novell, Inc.\n\n";
+ print "Copyright (c) 2009-2014, Novell, Inc.\n\n";
print_usage();
print "\n";
mysupport();
@@ -326,7 +331,7 @@
}
sub check($) {
- my ($dist) = @_;
+ my ($dist) = @_;
my ( $status, $ret_str, $error );
my $secstr = '';
my $recstr = '';
@@ -334,12 +339,14 @@
my $pacstr = '';
my $warnstr = '';
my $unsupstr = '';
+ my $local_pacstr = '';
my $update_avail = 0;
my %packagelist;
my @unsup_packagelist = ();
+ my @loc_packagelist = ();
if ($opt_u) {
- @unsup_packagelist = `$rpm -qa --qf "%{NAME} %{VENDOR}\n" | $grep -v
'SUSE LINUX Products GmbH, Nuernberg, Germany' | $grep -v 'openSUSE' | $grep -v
gpg-pubkey | $awk '" " { print \$1 }'`;
+ @unsup_packagelist = `$rpm -qa --qf "%{NAME} %{VENDOR}\n" | $grep -v
'SUSE LINUX Products GmbH, Nuernberg, Germany' | $grep -v 'openSUSE' | $grep -v
'SUSE LLC <https://www.suse.com/>' | $grep -v gpg-pubkey | $awk '" " { print
\$1 }'`;
my $category = 'unsupported';
my $status = 'new';
foreach my $name ( sort(@unsup_packagelist) ) {
@@ -352,6 +359,21 @@
$packagelist{"$category"}{"$name"}{'name'} = "$name";
$packagelist{"$category"}{"$name"}{'status'} = "$status";
}
+ if ( $dist->{'version'} gt 10.4 ){
+ @loc_packagelist = `$zypper search --details --installed-only |
$grep '(System Packages)' | $awk '" " { print \$3 }'`;
+ my $category = 'local_package';
+ my $status = 'new';
+ foreach my $name ( sort(@loc_packagelist) ) {
+ chomp($name);
+ if ( grep {$_ eq $name} @localwhitelist ) {
+ print STDERR "WARINING: ignoring $name as it is in
\@localwhitelist\n" if ($DEBUG);
+ next;
+ }
+ $packagelist{"$category"}{"$name"}{'category'} = "$category";
+ $packagelist{"$category"}{"$name"}{'name'} = "$name";
+ $packagelist{"$category"}{"$name"}{'status'} = "$status";
+ }
+ }
}
print STDERR "INFO: Trying $use_sudo $zypper $zypperopt\n" if ($DEBUG);
@@ -435,11 +457,12 @@
}
}
if ($DEBUG) {
- print STDERR 'INFO: Packages (paccount): ' . scalar( keys %{ (
$packagelist{'package'} ) } ) . "\n";
- print STDERR 'INFO: Optional (optcount): ' . scalar( keys %{ (
$packagelist{'optional'} ) } ) . "\n";
- print STDERR 'INFO: Recommended (reccount): ' . scalar( keys %{ (
$packagelist{'recommended'} ) } ) . "\n";
- print STDERR 'INFO: Security (seccount): ' . scalar( keys %{ (
$packagelist{'security'} ) } ) . "\n";
- print STDERR 'INFO: Unsupported (uspcount): ' . scalar( keys %{ (
$packagelist{'unsupported'} ) } ) . "\n";
+ print STDERR 'INFO: Packages (paccount): ' . scalar( keys %{ (
$packagelist{'package'} ) } ) . "\n";
+ print STDERR 'INFO: Optional (optcount): ' . scalar( keys %{ (
$packagelist{'optional'} ) } ) . "\n";
+ print STDERR 'INFO: Recommended (reccount): ' . scalar( keys %{ (
$packagelist{'recommended'} ) } ) . "\n";
+ print STDERR 'INFO: Security (seccount): ' . scalar( keys %{ (
$packagelist{'security'} ) } ) . "\n";
+ print STDERR 'INFO: Unsupported (uspcount): ' . scalar( keys %{ (
$packagelist{'unsupported'} ) } ) . "\n";
+ print STDERR 'INFO: Local Package(lspcount): ' . scalar( keys %{ (
$packagelist{'local_package'} ) } ) . "\n";
use Data::Dumper;
print STDERR Data::Dumper->Dump( [ \%packagelist ] );
}
@@ -468,38 +491,56 @@
$error = check_errorcode('unsupported');
$unsupstr = scalar( keys %{ ( $packagelist{'unsupported'} ) }
) . " unsupported package(s);";
}
+ if ( defined( $packagelist{'local_package'} ) && ( scalar( keys %{ (
$packagelist{'local_package'} ) } ) ne 0 ) ) {
+ $update_avail = 1;
+ $error = check_errorcode('local_package');
+ $local_pacstr = scalar( keys %{ ( $packagelist{'local_package'} )
} ) . " local package(s);";
+
+ }
if ($update_avail) {
- $ret_str .= trim("$warnstr $secstr $recstr $optstr $pacstr
$unsupstr") . " ";
+ $ret_str .= trim("$warnstr $secstr $recstr $optstr $pacstr
$unsupstr $local_pacstr") . " ";
my @packagelist = ();
my @unsupported_packagelist = ();
+ @loc_packagelist = ();
if ($opt_v) {
- foreach my $cat ( 'security', 'recommended', 'optional',
'package', 'unsupported' ) {
+ foreach my $cat ( 'security', 'recommended', 'optional',
'package', 'unsupported', 'local_package' ) {
for my $key ( sort( keys %packagelist ) ) {
if ( "$key" eq "$cat" ) {
- for my $name ( sort( keys %{ $packagelist{$key} }
) ) {
+ for my $name ( sort( keys %{ $packagelist{$cat} }
) ) {
if ( "$cat" eq "package" ) {
- push @packagelist,
$packagelist{$key}{$name}{'name'};
+ push @packagelist,
$packagelist{$cat}{$name}{'name'};
}
elsif ( "$cat" eq "unsupported" ) {
- push @unsupported_packagelist,
$packagelist{$key}{$name}{'name'};
+ push @unsupported_packagelist,
$packagelist{$cat}{$name}{'name'};
+ }
+ elsif ( "$cat" eq "local_package" ) {
+ push @loc_packagelist,
$packagelist{$cat}{$name}{'name'};
}
else {
- $ret_str .= "\n$cat patch: " .
$packagelist{$key}{$name}{'name'};
+ $ret_str .= "\n$cat patch: " .
$packagelist{$cat}{$name}{'name'};
}
}
}
}
}
- $ret_str .= "\npackages: " . join( ' ', @packagelist ) if
@packagelist;
- $ret_str .= "\nunsupported Packages: " . join( ' ',
@unsupported_packagelist ) if @unsupported_packagelist;
+ $ret_str .= "\nPackages: " . join( ' ', sort(@packagelist)) if
@packagelist;
+ $ret_str .= "\nunsupported Packages: " . join( ' ',
sort(@unsupported_packagelist)) if @unsupported_packagelist;
+ $ret_str .= "\nlocal Packages : ". join(' ',
sort(@loc_packagelist)) if @loc_packagelist;
$ret_str .= "\nIgnored Patches : " . join( ' ', @patchignore )
. " " if @patchignore;
$ret_str .= "\nIgnored Packages: " . join( ' ', @packageignore
) . " " if @packageignore;
if ( $#packagewhitelist lt 11 ) {
- $ret_str .= "\nUnsupported, ignored Packages: " . join( '
', @packagewhitelist ) . " " if @packagewhitelist;
+ $ret_str .= "\nUnsupported, ignored Packages: " . join( '
', sort(@packagewhitelist)) . " " if @packagewhitelist;
}
else {
$ret_str .= "\nUnsupported, ignored Packages:
$#packagewhitelist ";
}
+ if ( $#localwhitelist lt 11 ) {
+ $ret_str .= "\nLocal, ignored Packages: " . join( ' ',
sort(@localwhitelist)). " " if @localwhitelist;
+ }
+ else {
+ $ret_str .= "\nLocal, ignored Packages: $#localwhitelist ";
+ }
+
}
}
else {
@@ -514,6 +555,12 @@
else {
$ret_str .= "\nUnsupported, ignored Packages:
$#packagewhitelist ";
}
+ if ( $#localwhitelist lt 11 ) {
+ $ret_str .= "\nLocal, ignored Packages: " . join( ' ',
@localwhitelist ). " " if @localwhitelist;
+ }
+ else {
+ $ret_str .= "\nLocal, ignored Packages: $#localwhitelist ";
+ }
}
}
$ret_str
@@ -648,6 +695,12 @@
print "INFO: + Whitelisting Package: $toadd\n" if ($DEBUG);
push @packagewhitelist, "$toadd";
}
+ elsif ( (/^local_package:/) || (/^local package:/) ) {
+ my ( $foo, $toadd ) = split( ':', $_, 2 );
+ $toadd =~ s/\s*//g; # Package names have no whitespaces
+ print "INFO: + Whitelisting local Package: $toadd\n" if
($DEBUG);
+ push @localwhitelist, "$toadd";
+ }
}
close(IGNORES);
}
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]