[monitoring-plugins] Fix check_dhcp tests
Jacob Hansen
git at monitoring-plugins.org
Fri Apr 30 11:20:10 CEST 2021
Module: monitoring-plugins
Branch: feature_github_actions
Commit: 39c162e594ec962eb338332624d3ac7474227a2b
Author: Aksel Sjögren <asjogren at itrsgroup.com>
Committer: Jacob Hansen <jhansen at op5.com>
Date: Thu Apr 29 15:58:50 2021 +0200
URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=39c162e
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.
---
plugins-root/t/check_dhcp.t | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/plugins-root/t/check_dhcp.t b/plugins-root/t/check_dhcp.t
index 222f454..ce62773 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;
}
More information about the Commits
mailing list