[Nagios-Plugin] Fix a bug where default file used is not shown
"Nagios Plugin Development" <[email protected]> Fri, 29 Jun 2012 03:01:26 +0000
| Newsgroups | gmane.network.nagios.plugins.cvs |
|---|---|
| Message-ID | <[email protected]> |
Module: Nagios-Plugin Branch: master Commit: e70d62aaf96830a6480b147e6c90c30aeef31a54 Author: Thomas Guyot-Sionnest <[email protected]> Date: Thu Jun 28 22:54:38 2012 -0400 URL: http://nagiosplug.git.sf.net/git/gitweb.cgi?p=nagiosplug/Nagios-Plugin;a=commit;h=e70d62a Fix a bug where default file used is not shown When a default file is used but no section is found (ex. below using "bad_section"), the plugin dies with: Invalid section 'bad_section' in config file '' This patch add a function to Nagios::Plugin::Config that returns the last used file, and use it to return a file name when we have none. --- lib/Nagios/Plugin/Config.pm | 7 ++++++- lib/Nagios/Plugin/Getopt.pm | 1 + 2 files changed, 7 insertions(+), 1 deletions(-) diff --git a/lib/Nagios/Plugin/Config.pm b/lib/Nagios/Plugin/Config.pm index 11128dd..dd270e9 100644 --- a/lib/Nagios/Plugin/Config.pm +++ b/lib/Nagios/Plugin/Config.pm @@ -7,6 +7,7 @@ use base qw(Config::Tiny); my $FILENAME1 = 'plugins.ini'; my $FILENAME2 = 'nagios-plugins.ini'; +my $CURRENT_FILE = undef; # Config paths ending in nagios (search for $FILENAME1) my @NAGIOS_CONFIG_PATH = qw(/etc/nagios /usr/local/nagios/etc /usr/local/etc/nagios /etc/opt/nagios); @@ -42,6 +43,7 @@ sub read die "Cannot find '$FILENAME1' or '$FILENAME2' in any standard location.\n" unless $_[0]; } + $CURRENT_FILE = $_[0]; $class->SUPER::read( @_ ); } @@ -73,7 +75,7 @@ sub read_string # Handle properties if ( /^\s*([^=]+?)\s*=\s*(.*?)\s*$/ ) { - push @{$self->{$ns}->{$1}}, $2; + push @{$self->{$ns}->{$1}}, $2; next; } @@ -85,6 +87,9 @@ sub read_string sub write { croak "Write access not permitted" } +# Return last file used by read(); +sub np_getfile { return $CURRENT_FILE; } + 1; =head1 NAME diff --git a/lib/Nagios/Plugin/Getopt.pm b/lib/Nagios/Plugin/Getopt.pm index 6432ee0..f910c4b 100644 --- a/lib/Nagios/Plugin/Getopt.pm +++ b/lib/Nagios/Plugin/Getopt.pm @@ -249,6 +249,7 @@ sub _load_config_section # TODO: is this check sane? Does --extra-opts=foo require a [foo] section? ## Nevertheless, if we die as UNKNOWN here we should do the same on default ## file *added eval/_die above*. + $file ||= $Config->np_getfile(); $self->_die("Invalid section '$section' in config file '$file'") unless exists $Config->{$section}; ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/