diff options
author | Aksel Sjögren <asjogren@itrsgroup.com> | 2021-04-29 15:58:50 +0200 |
---|---|---|
committer | Jacob Hansen <jhansen@op5.com> | 2021-04-30 11:14:10 +0200 |
commit | 39c162e594ec962eb338332624d3ac7474227a2b (patch) | |
tree | 87b84c1f7dba02069130307559c5679f6ced3d37 /plugins-root/t/check_dhcp.t | |
parent | e712d5a6ef194845e815f0471589262bcb1cced4 (diff) | |
download | monitoring-plugins-39c162e594ec962eb338332624d3ac7474227a2b.tar.gz |
Fix check_dhcp tests
* try to use "/usr/sbin/ip" before "ifconfig" since the latter is
obsolete on Linux to figure out interface to listen for DHCP messages.
But keeping ifconfig method just in case.
Without this, tests fail on boxes without ifconfig AND the correct
interface named ethX.
* amend possible failure responses, as check_dhcp might get a DHCPOFFER,
but from an unexpected address - which happens if the box running
tests are on a network with a DHCP server.
Diffstat (limited to 'plugins-root/t/check_dhcp.t')
-rw-r--r-- | plugins-root/t/check_dhcp.t | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/plugins-root/t/check_dhcp.t b/plugins-root/t/check_dhcp.t index 222f4544..ce627736 100644 --- a/plugins-root/t/check_dhcp.t +++ b/plugins-root/t/check_dhcp.t @@ -19,7 +19,7 @@ if ($allow_sudo eq "yes" or $> == 0) { my $sudo = $> == 0 ? '' : 'sudo'; my $successOutput = '/OK: Received \d+ DHCPOFFER\(s\), \d+ of 1 requested servers responded, max lease time = \d+ sec\./'; -my $failureOutput = '/CRITICAL: No DHCPOFFERs were received/'; +my $failureOutput = '/CRITICAL: (No DHCPOFFERs were received|Received \d+ DHCPOFFER\(s\), 0 of 1 requested servers responded, max lease time = \d+ sec\.)/'; my $invalidOutput = '/Invalid hostname/'; my $host_responsive = getTestParameter( "NP_HOST_DHCP_RESPONSIVE", @@ -36,7 +36,12 @@ my $hostname_invalid = getTestParameter( "NP_HOSTNAME_INVALID", # try to determince interface my $interface = ''; -if(`ifconfig -a 2>/dev/null` =~ m/^(e\w*\d+)/mx and $1 ne 'eth0') { + +# find interface used for default route +if (-x '/usr/sbin/ip' and `/usr/sbin/ip route get 1.1.1.1 2>/dev/null` =~ m/\sdev\s(\S+)/) { + $interface = "-i $1"; +} +elsif (`ifconfig -a 2>/dev/null` =~ m/^(e\w*\d+)/mx and $1 ne 'eth0') { $interface = ' -i '.$1; } |