Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Nagios::Plugin --extra-opts auto quote?

by Skeeve (Vicar)
on May 23, 2012 at 12:27 UTC ( #972026=perlquestion: print w/ replies, xml ) Need Help??
Skeeve has asked for the wisdom of the Perl Monks concerning the following question:

Hi!

I'm doing my first Nagios plugin based on Nagios::Plugins and I noticed that it automatically supports --extra-opts.

So I did my first attempt with this feature as it seem to well fit my needs.

unfortunately I observed 2 strange behaviours:

  1. I had an argument "msg|message" and this led to some weird parsing of the extra opts. My config file was like this:

    [experiment] percent=1 message=%d OK

    The result was percent was undefined and msg was set to "--percent".

    When I changed the argument to "message|msg", it worked. Now percent is set to 1 and message is set to '"%d OK"'.

    And this leads to my second strange behaviour:

  2. Every value, which contains spaces, is automatically quoted. So instead of having just

    %d OK
    I get
    "%d OK"
    . and I think this is a bug.

Update

Some code to play with:

use strict; use warnings; use Nagios::Plugin; use Data::Dumper; my $n=Nagios::Plugin->new(version=>1,usage=>""); $n->add_arg("percent","",undef,0); $n->add_arg("msg|message=s","",undef,0); $n->getopts(); print Dumper $n->opts

Output is (shortened)

$VAR1 = bless( { : : 'msg' => '--percent', 'verbose' => 0, 'usage' => undef, 'percent' => undef, : }, 'Nagios::Plugin::Getopt' );

Which is wrong. If you change "msg|message=s" to "message|msg=s" the output will be almost correct:

$VAR1 = bless( { : : 'percent' => 1, 'version' => undef, 'message' => '"%d OK"', }, 'Nagios::Plugin::Getopt' );

More Updates

Quoting isn't done properly, I think. When I use this configuration file:

[experiment] percent=1 message="%d" OK

I get a very unusual quoted string: ""%d" OK"


s$$([},&%#}/&/]+}%&{})*;#$&&s&&$^X.($'^"%]=\&(|?*{%
+.+=%;.#_}\&"^"-+%*).}%:##%}={~=~:.")&e&&s""`$''`"e

Comment on Nagios::Plugin --extra-opts auto quote?
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://972026]
Approved by marto
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (5)
As of 2015-07-04 22:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls