From 15ce7b9d28dda1afb6b892c1e2a34e057f3fdb60 Mon Sep 17 00:00:00 2001 From: Tobi Oetiker Date: Mon, 15 Oct 2007 07:49:18 +0000 Subject: * fixed parsing of slaves statements in config file, broeken since I seemingly relaxed the hostname constraints. * removed all online testing from Curl and EchoPing probes --- CHANGES | 20 +++++++++++++++++--- etc/config.dist | 3 ++- lib/Smokeping.pm | 2 +- lib/Smokeping/probes/Curl.pm | 12 +++++------- lib/Smokeping/probes/EchoPing.pm | 7 ++++--- lib/Smokeping/probes/EchoPingChargen.pm | 2 +- lib/Smokeping/probes/EchoPingDiscard.pm | 2 +- lib/Smokeping/probes/EchoPingHttp.pm | 6 +++--- lib/Smokeping/probes/EchoPingSmtp.pm | 2 +- 9 files changed, 35 insertions(+), 21 deletions(-) diff --git a/CHANGES b/CHANGES index dc593d2..c5b8e4b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,19 @@ -* In the SSH probe let the user configure the port to use when talking to the client --tobi +* fixed parsing of slaves statements in config file. This did not work at + all it seems --tobi -* Make master/slave work when slave names contain uppercase letters and full dots. -- tobi +* modified all the 'live' tests with curl and echoping to not be live but + use other indications to see if the software is happy or not. Manly for + echoping this depends on the way echo ping complains about option usage. + So this may need tuning in the future. --tobi + +* allow rightclicks in the legnd area of the zoom image. this allows to save + the image. -- tobi + +* In the SSH probe let the user configure the port to use when talking to + the client --tobi + +* Make master/slave work when slave names contain uppercase letters and full + dots. -- tobi * Allow slave-name to be configured -- tobi @@ -10,7 +23,8 @@ with this we solve the problem that maybe some @include configs have changed which we would not find out otherwise -- tobi -* updated cropper: when selecting something outside the graph, multiply by 10. Use this to zoom out -- tobi +* updated cropper: when selecting something outside the graph, multiply by + 10. Use this to zoom out -- tobi 2007/9/16 -- released version 2.2.4 diff --git a/etc/config.dist b/etc/config.dist index 1af1c39..8604171 100644 --- a/etc/config.dist +++ b/etc/config.dist @@ -103,6 +103,7 @@ secrets=/home/oetiker/checkouts/smokeping/trunk/software/etc/smokeping_secrets.d +boomer display_name=boomer color=0000ff ++slave2 *** Targets *** @@ -121,7 +122,7 @@ menu= Targets menu = James title =James alerts = someloss -slaves = boomer +slaves = boomer slave2 host = james.address ++ MultiHost diff --git a/lib/Smokeping.pm b/lib/Smokeping.pm index a5f231c..818de9f 100644 --- a/lib/Smokeping.pm +++ b/lib/Smokeping.pm @@ -1956,7 +1956,7 @@ DOC If you want to have alerts for this target and all targets below it go to a particular address on top of the address already specified in the alert, you can add it here. This can be a comma separated list of items. DOC - slaves => { _re => "${KEYD_RE}(:?\\s+${KEYD_RE})*", + slaves => { _re => "${KEYD_RE}(?:\\s+${KEYD_RE})*", _re_error => 'Use the format: slaves='.${KEYD_RE}.' [slave2]', _doc => <features; my %arghash = %$arghashref; - + my $curl_man = `$bin --manual`; for my $feature (keys %arghash) { - system("$bin $arghash{$feature} 1 0.0.0.1 >/dev/null 2>&1"); - if ($? == 2) { - push @unsupported, $feature; - $self->do_log("Note: your curl doesn't support the $feature feature (option $arghash{$feature}), disabling it"); - } + next if $curl_man =~ /\Q$arghash{$feature}/; + push @unsupported, $feature; + $self->do_log("Note: your curl doesn't support the $feature feature (option $arghash{$feature}), disabling it"); } map { delete $arghashref->{$_} } @unsupported; - if (`$bin -o /dev/null -w '<%{time_redirect}>\n' 0.0.0.1 2>&1` =~ /^<>/m) { + if ($curl_man !~ /\stime_redirect\s/) { $self->do_log("Note: your curl doesn't support the 'time_redirect' output variable; 'include_redirects' will not function."); } return; diff --git a/lib/Smokeping/probes/EchoPing.pm b/lib/Smokeping/probes/EchoPing.pm index 4be5a0d..95d1a6e 100644 --- a/lib/Smokeping/probes/EchoPing.pm +++ b/lib/Smokeping/probes/EchoPing.pm @@ -88,15 +88,16 @@ sub test_usage { my $arghashref = $self->features; my %arghash = %$arghashref; - for my $feature (keys %arghash) { - if (`$bin $arghash{$feature} 1 0.0.0.1 2>&1` =~ /invalid option|usage/i) { + # when the option is invalid, then echoping would + # complain. if it is valid, then it will just display + # the usage message. + if (`$bin $arghash{$feature} 2>&1` !~ /^Usage/i) { push @unsupported, $feature; $self->do_log("Note: your echoping doesn't support the $feature feature (option $arghash{$feature}), disabling it"); } } map { delete $arghashref->{$_} } @unsupported; - return; } diff --git a/lib/Smokeping/probes/EchoPingChargen.pm b/lib/Smokeping/probes/EchoPingChargen.pm index 53f4386..a75153d 100644 --- a/lib/Smokeping/probes/EchoPingChargen.pm +++ b/lib/Smokeping/probes/EchoPingChargen.pm @@ -46,7 +46,7 @@ sub test_usage { my $self = shift; my $bin = $self->{properties}{binary}; croak("Your echoping binary doesn't support CHARGEN") - if `$bin -c 2>&1 0.0.0.1` =~ /(usage|not compiled|invalid option)/i; + if `$bin -c 2>&1` !~ /^Usage/i; $self->SUPER::test_usage; return; } diff --git a/lib/Smokeping/probes/EchoPingDiscard.pm b/lib/Smokeping/probes/EchoPingDiscard.pm index 2970232..490d373 100644 --- a/lib/Smokeping/probes/EchoPingDiscard.pm +++ b/lib/Smokeping/probes/EchoPingDiscard.pm @@ -46,7 +46,7 @@ sub test_usage { my $self = shift; my $bin = $self->{properties}{binary}; croak("Your echoping binary doesn't support DISCARD") - if `$bin -d 0.0.0.1 2>&1` =~ /(not compiled|invalid option|usage)/i; + if `$bin -d 2>&1` !~ /^Usage/i; $self->SUPER::test_usage; return; } diff --git a/lib/Smokeping/probes/EchoPingHttp.pm b/lib/Smokeping/probes/EchoPingHttp.pm index 7107de6..2f5ea32 100644 --- a/lib/Smokeping/probes/EchoPingHttp.pm +++ b/lib/Smokeping/probes/EchoPingHttp.pm @@ -88,13 +88,13 @@ sub test_usage { my $self = shift; my $bin = $self->{properties}{binary}; croak("Your echoping binary doesn't support HTTP") - if `$bin -h / 0.0.0.1 2>&1` =~ /(invalid option|not compiled|usage)/i; - if (`$bin -a -h / 0.0.0.1 2>&1` =~ /(invalid option|not compiled|usage)/i) { + if `$bin -h / 2>&1` !~ /^Usage/; + if (`$bin -a -h / 2>&1` !~ /^Usage/) { carp("Note: your echoping binary doesn't support revalidating (-a), disabling it"); $self->{_disabled}{a} = undef; } - if (`$bin -A -h / 0.0.0.1 2>&1` =~ /(invalid option|not compiled|usage)/i) { + if (`$bin -A -h / 2>&1` !~ /^Usage/) { carp("Note: your echoping binary doesn't support ignoring cache (-A), disabling it"); $self->{_disabled}{A} = undef; } diff --git a/lib/Smokeping/probes/EchoPingSmtp.pm b/lib/Smokeping/probes/EchoPingSmtp.pm index a65b97c..74f7a64 100644 --- a/lib/Smokeping/probes/EchoPingSmtp.pm +++ b/lib/Smokeping/probes/EchoPingSmtp.pm @@ -54,7 +54,7 @@ sub test_usage { my $self = shift; my $bin = $self->{properties}{binary}; croak("Your echoping binary doesn't support SMTP") - if `$bin -S 0.0.0.1 2>&1` =~ /(not compiled|invalid option|usage)/i; + if `$bin -S 2>&1` !~ /^Usage/; $self->SUPER::test_usage; return; } -- cgit v1.2.3-24-g4f1b