From 91713ef347d49dca7de7dd9360d42763dd961894 Mon Sep 17 00:00:00 2001 From: Steve Kemp Date: Thu, 16 Apr 2015 16:14:06 +0100 Subject: Updated test-handler for new API. This update consists of two changes: * No longer return "true" or "false" instead return "TEST_FAILED", or "TEST_SUCCEEDED". * Removed the testing of test-inversion from the class, now it lives in the base-class where it should have done all along. --- lib/custodian/protocoltest/dns.rb | 20 +++++++++----------- lib/custodian/protocoltest/dnsbl.rb | 18 +++++------------- lib/custodian/protocoltest/ftp.rb | 9 --------- lib/custodian/protocoltest/http.rb | 21 +++++++-------------- lib/custodian/protocoltest/imap.rb | 10 ---------- lib/custodian/protocoltest/jabber.rb | 9 --------- lib/custodian/protocoltest/ldap.rb | 19 +++++-------------- lib/custodian/protocoltest/mx.rb | 19 +++++++------------ lib/custodian/protocoltest/mysql.rb | 11 ----------- lib/custodian/protocoltest/named.rb | 9 --------- lib/custodian/protocoltest/openproxy.rb | 21 +++++++-------------- lib/custodian/protocoltest/ping.rb | 21 +++++++-------------- lib/custodian/protocoltest/pop3.rb | 11 ----------- lib/custodian/protocoltest/postgresql.rb | 11 ----------- lib/custodian/protocoltest/redis.rb | 11 ----------- lib/custodian/protocoltest/rsync.rb | 10 ---------- lib/custodian/protocoltest/smtp.rb | 9 --------- lib/custodian/protocoltest/ssh.rb | 11 ----------- lib/custodian/protocoltest/ssl.rb | 14 +++++++------- lib/custodian/protocoltest/tcp.rb | 24 ++++-------------------- lib/custodian/protocoltest/telnet.rb | 9 --------- 21 files changed, 58 insertions(+), 239 deletions(-) (limited to 'lib') diff --git a/lib/custodian/protocoltest/dns.rb b/lib/custodian/protocoltest/dns.rb index 4685029..b7e75c0 100644 --- a/lib/custodian/protocoltest/dns.rb +++ b/lib/custodian/protocoltest/dns.rb @@ -1,4 +1,5 @@ require 'custodian/settings' +require 'custodian/testfactory' require 'custodian/util/dns' require 'resolv' @@ -44,15 +45,6 @@ module Custodian # @line = line - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - if line =~ /for\s+([^\s]+)\sresolving\s([A-Z]+)\s+as\s'([^']+)'/ @resolve_name = $1.dup @resolve_type = $2.dup @@ -107,7 +99,7 @@ module Custodian # Do the lookup # results = resolve_via(@host, resolve_type, resolve_name, period) - return false if results.nil? + return Custodian::TestResult::TEST_FAILED if results.nil? # # OK we have an array of results. If every one of the expected @@ -116,9 +108,15 @@ module Custodian if !(results - @resolve_expected).empty? or !(@resolve_expected - results).empty? @error = "DNS server *#{@host}* (#{@server_ip}) returned the wrong records for @#{resolve_name} IN #{resolve_type}@.\n\nWe expected '#{resolve_expected.join(',')}', but we received '#{results.join(',')}'\n" + return Custodian::TestResult::TEST_FAILED end - @error.nil? + # + # We were valid. + # + @error = '' + Custodian::TestResult::TEST_PASSED + end diff --git a/lib/custodian/protocoltest/dnsbl.rb b/lib/custodian/protocoltest/dnsbl.rb index a16de0a..0e1459d 100644 --- a/lib/custodian/protocoltest/dnsbl.rb +++ b/lib/custodian/protocoltest/dnsbl.rb @@ -42,14 +42,6 @@ module Custodian @zones = 'zen.spamhaus.org' end - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end end @@ -58,7 +50,7 @@ module Custodian # Allow this test to be serialized. # def to_s - @line + @line end @@ -89,16 +81,16 @@ module Custodian if (!result.nil?) && (result.length > 0) @error = "IP #{@host} listed in blacklist #{zone}. Lookup of #{name} lead to result: #{result}" - return true + return Custodian::TestResult::TEST_PASSED end else - @error = "#{@host} wasn't an IP address" - return true + @error = "#{@host} wasn't an IP address" + return Custodian::TestResult::TEST_PASSED end end - false + Custodian::TestResult::TEST_FAILED end diff --git a/lib/custodian/protocoltest/ftp.rb b/lib/custodian/protocoltest/ftp.rb index e3c192d..de3de78 100644 --- a/lib/custodian/protocoltest/ftp.rb +++ b/lib/custodian/protocoltest/ftp.rb @@ -36,15 +36,6 @@ module Custodian @host = $1.dup end - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - # # Save the port # diff --git a/lib/custodian/protocoltest/http.rb b/lib/custodian/protocoltest/http.rb index 9ce1980..997f2f9 100644 --- a/lib/custodian/protocoltest/http.rb +++ b/lib/custodian/protocoltest/http.rb @@ -1,5 +1,7 @@ require 'custodian/settings' +require 'custodian/testfactory' + require 'timeout' require 'uri' @@ -96,15 +98,6 @@ module Custodian end - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - # # Expected status # @@ -203,7 +196,7 @@ module Custodian require 'curb' rescue LoadError @error = "The required rubygem 'curb' was not found." - return false + return Custodian::TestResult::TEST_FAILED end # @@ -309,8 +302,8 @@ module Custodian end if content.is_a?(String) and - expected_content.is_a?(String) and - content !~ /#{expected_content}/i + expected_content.is_a?(String) and + content !~ /#{expected_content}/i errors << "#{protocol_msg}: The response did not contain our expected text '#{expected_content}'." end end @@ -325,13 +318,13 @@ module Custodian errors << "Host header was overridden as Host: #{@host_override}" end @error = errors.join("\n") - return false + return Custodian::TestResult::TEST_FAILED end # # All done. # - true + Custodian::TestResult::TEST_PASSED end # diff --git a/lib/custodian/protocoltest/imap.rb b/lib/custodian/protocoltest/imap.rb index 5f6ba25..2c7079e 100644 --- a/lib/custodian/protocoltest/imap.rb +++ b/lib/custodian/protocoltest/imap.rb @@ -35,16 +35,6 @@ module Custodian @host = line.split(/\s+/)[0] - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - - # # Save the port # diff --git a/lib/custodian/protocoltest/jabber.rb b/lib/custodian/protocoltest/jabber.rb index ab881de..19fc2a4 100644 --- a/lib/custodian/protocoltest/jabber.rb +++ b/lib/custodian/protocoltest/jabber.rb @@ -34,15 +34,6 @@ module Custodian # @host = line.split(/\s+/)[0] - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - # # Save the port # diff --git a/lib/custodian/protocoltest/ldap.rb b/lib/custodian/protocoltest/ldap.rb index c7429a6..7f8091e 100644 --- a/lib/custodian/protocoltest/ldap.rb +++ b/lib/custodian/protocoltest/ldap.rb @@ -54,15 +54,6 @@ module Custodian raise ArgumentError, "No password specified: #{@line}" end - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - # # Save the port # @@ -94,7 +85,7 @@ module Custodian require 'ldap' rescue LoadError @error = 'LDAP library not available - test disabled' - return false + return Custodian::TestResult::TEST_FAILED end # reset the error, in case we were previously executed. @@ -122,18 +113,18 @@ module Custodian puts "We found an LDAP result #{entry.vals('cn')}" } ldap.unbind - return true + return Custodian::TestResult::TEST_PASSED else @error = "failed to bind to LDAP server '#{@host}' with username '#{@ldap_user}' and password '#{@ldap_pass}'" - return false + return Custodian::TestResult::TEST_FAILED end rescue LDAP::ResultError => ex @error = "LDAP exception: #{ex} when talking to LDAP server '#{@host}' with username '#{@ldap_user}' and password '#{@ldap_pass}'" - return false + return Custodian::TestResult::TEST_FAILED end @error = "LDAP server test failed against '#{@host}' with username '#{@ldap_user}' and password '#{@ldap_pass}'" - false + Custodian::TestResult::TEST_FAILED end diff --git a/lib/custodian/protocoltest/mx.rb b/lib/custodian/protocoltest/mx.rb index 3770686..cd5e58e 100644 --- a/lib/custodian/protocoltest/mx.rb +++ b/lib/custodian/protocoltest/mx.rb @@ -1,4 +1,5 @@ -require 'custodian/protocoltest/tcp' +require 'custodian/settings' +require 'custodian/testfactory' # # The MX (DNS + smtp) test. @@ -28,12 +29,6 @@ module Custodian # The main domain we're querying @host = line.split(/\s+/)[0] - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - end @@ -78,7 +73,7 @@ module Custodian end rescue Timeout::Error => e @error = "Timed-out performing DNS lookups: #{e}" - return nil + return Custodian::TestResult::TEST_FAILED end # @@ -92,7 +87,7 @@ module Custodian # if mx.empty? then @error = "Failed to perform DNS lookup of MX record(s) for host #{@host}" - return false + return Custodian::TestResult::TEST_FAILED end @@ -130,7 +125,7 @@ module Custodian error += "Error connecting to #{backend}:25. " end end - rescue Timeout::Error => ex + rescue Timeout::Error => _ex # Timeout failed += 1 error += "Timeout connecting to #{backend}:25. " @@ -142,9 +137,9 @@ module Custodian # if failed > 0 @error = "There are #{mx.size} hosts running as MX-servers for domain #{@host} - #{passed}:OK #{failed}:FAILED - #{error}" - return false + return Custodian::TestResult::TEST_FAILED else - return true + return Custodian::TestResult::TEST_PASSED end end diff --git a/lib/custodian/protocoltest/mysql.rb b/lib/custodian/protocoltest/mysql.rb index 152c53f..e462dc4 100644 --- a/lib/custodian/protocoltest/mysql.rb +++ b/lib/custodian/protocoltest/mysql.rb @@ -34,17 +34,6 @@ module Custodian # @host = line.split(/\s+/)[0] - - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - - # # Save the port # diff --git a/lib/custodian/protocoltest/named.rb b/lib/custodian/protocoltest/named.rb index bb87e85..6738383 100644 --- a/lib/custodian/protocoltest/named.rb +++ b/lib/custodian/protocoltest/named.rb @@ -34,15 +34,6 @@ module Custodian # @host = line.split(/\s+/)[0] - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - # # Save the port # diff --git a/lib/custodian/protocoltest/openproxy.rb b/lib/custodian/protocoltest/openproxy.rb index 07f608f..d3acfaa 100644 --- a/lib/custodian/protocoltest/openproxy.rb +++ b/lib/custodian/protocoltest/openproxy.rb @@ -1,5 +1,6 @@ - require 'custodian/settings' +require 'custodian/testfactory' + require 'uri' @@ -41,14 +42,6 @@ module Custodian # @host = line.split(/\s+/)[0] - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end end @@ -112,9 +105,9 @@ module Custodian return false end end - rescue Timeout::Error => e + rescue Timeout::Error => _e @error = 'Timed out during fetch.' - return false + return Custodian::TestResult::TEST_FAILED end # @@ -122,10 +115,10 @@ module Custodian # got a result. # if (@status.to_i == 200) - return true + return Custodian::TestResult::TEST_PASSED else - @error = "Proxy fetch of http://google.com/ via #{@host} failed" - return false + @error = "Proxy fetch of http://google.com/ via #{@host} failed" + return Custodian::TestResult::TEST_FAILED end end diff --git a/lib/custodian/protocoltest/ping.rb b/lib/custodian/protocoltest/ping.rb index 7622fb5..075f8db 100644 --- a/lib/custodian/protocoltest/ping.rb +++ b/lib/custodian/protocoltest/ping.rb @@ -1,3 +1,4 @@ +require 'custodian/settings' require 'custodian/testfactory' @@ -38,14 +39,6 @@ module Custodian # @host = line.split(/\s+/)[0] - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end end @@ -75,7 +68,7 @@ module Custodian if binary.nil? @error = "Failed to find '/usr/bin/multi-ping'" - return false + return Custodian::TestResult::TEST_FAILED end @@ -87,7 +80,7 @@ module Custodian # if @host !~ /^([a-zA-Z0-9:\-\.]+)$/ @error = "Invalid hostname for ping-test: #{@host}" - return false + return Custodian::TestResult::TEST_FAILED end @@ -152,7 +145,7 @@ module Custodian end rescue Timeout::Error => e @error = "Timed-out performing DNS lookups: #{e}" - return nil + return Custodian::TestResult::TEST_FAILED end @@ -161,7 +154,7 @@ module Custodian # if ips.empty? @error = "#{@host} failed to resolve to either IPv4 or IPv6" - return false + return Custodian::TestResult::TEST_FAILED end @@ -173,7 +166,7 @@ module Custodian ips.each do |ip| if (system(binary, ip) != true) @error = "Ping failed for #{ip} - from #{@host} " - return false + return Custodian::TestResult::TEST_FAILED end end @@ -184,7 +177,7 @@ module Custodian # So by the time we reach here we know that all the addresses # were pingable. # - true + Custodian::TestResult::TEST_PASSED end diff --git a/lib/custodian/protocoltest/pop3.rb b/lib/custodian/protocoltest/pop3.rb index 2429c79..c66555d 100644 --- a/lib/custodian/protocoltest/pop3.rb +++ b/lib/custodian/protocoltest/pop3.rb @@ -34,17 +34,6 @@ module Custodian # @host = line.split(/\s+/)[0] - - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - - # # Save the port # diff --git a/lib/custodian/protocoltest/postgresql.rb b/lib/custodian/protocoltest/postgresql.rb index d88d131..85baa76 100644 --- a/lib/custodian/protocoltest/postgresql.rb +++ b/lib/custodian/protocoltest/postgresql.rb @@ -34,17 +34,6 @@ module Custodian # @host = line.split(/\s+/)[0] - - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - - # # Save the port # diff --git a/lib/custodian/protocoltest/redis.rb b/lib/custodian/protocoltest/redis.rb index 88ac67a..75ff15b 100644 --- a/lib/custodian/protocoltest/redis.rb +++ b/lib/custodian/protocoltest/redis.rb @@ -34,17 +34,6 @@ module Custodian # @host = line.split(/\s+/)[0] - - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - - # # Save the port # diff --git a/lib/custodian/protocoltest/rsync.rb b/lib/custodian/protocoltest/rsync.rb index 1a52b03..ec91429 100644 --- a/lib/custodian/protocoltest/rsync.rb +++ b/lib/custodian/protocoltest/rsync.rb @@ -37,16 +37,6 @@ module Custodian @host = $1.dup end - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - - # # Save the port # diff --git a/lib/custodian/protocoltest/smtp.rb b/lib/custodian/protocoltest/smtp.rb index 6968ae9..e724c14 100644 --- a/lib/custodian/protocoltest/smtp.rb +++ b/lib/custodian/protocoltest/smtp.rb @@ -34,15 +34,6 @@ module Custodian # @host = line.split(/\s+/)[0] - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - # # Save the port # diff --git a/lib/custodian/protocoltest/ssh.rb b/lib/custodian/protocoltest/ssh.rb index feb50f2..e68a93f 100644 --- a/lib/custodian/protocoltest/ssh.rb +++ b/lib/custodian/protocoltest/ssh.rb @@ -35,17 +35,6 @@ module Custodian # @host = line.split(/\s+/)[0] - - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - - # # Save the port # diff --git a/lib/custodian/protocoltest/ssl.rb b/lib/custodian/protocoltest/ssl.rb index f2baf67..cc36652 100644 --- a/lib/custodian/protocoltest/ssl.rb +++ b/lib/custodian/protocoltest/ssl.rb @@ -162,7 +162,7 @@ class SSLCheck # Setup a hostname for SNI-purposes. begin s.hostname = uri.host - rescue NoMethodError => err + rescue NoMethodError => _err # SNI isn't possible, as the SSL library is too old. end @@ -391,7 +391,7 @@ module Custodian # If the line disables us then return early # if @line =~ /no_ssl_check/ - return true + return Custodian::TestResult::TEST_PASSED end @@ -405,7 +405,7 @@ module Custodian # if hour < 10 || hour > 17 puts("Outside office hours - Not running SSL-Verification of #{@host}") - return true + return Custodian::TestResult::TEST_SKIPPED end # @@ -413,7 +413,7 @@ module Custodian # if ! @host =~ /^https:\/\// puts('Not an SSL URL') - return true + return Custodian::TestResult::TEST_SKIPPED end s = SSLCheck.new(@host) @@ -421,15 +421,15 @@ module Custodian if true == result puts("SSL Verification succeeded for #{@host}") - return true + return Custodian::TestResult::TEST_PASSED elsif result.nil? puts("SSL Verification returned no result (timeout?) #{@host}") - return true + return Custodian::TestResult::TEST_PASSED else puts("SSL Verification for #{@host} has failed.") @error = "SSL Verification for #{@host} failed: " @error += s.errors.join("\n") - return false + return Custodian::TestResult::TEST_FAILED end end diff --git a/lib/custodian/protocoltest/tcp.rb b/lib/custodian/protocoltest/tcp.rb index 1747f3f..684452b 100644 --- a/lib/custodian/protocoltest/tcp.rb +++ b/lib/custodian/protocoltest/tcp.rb @@ -40,13 +40,6 @@ module Custodian # attr_reader :port - - # - # Is this test inverted? - # - attr_reader :inverted - - # # The banner to look for, may be nil. # @@ -72,15 +65,6 @@ module Custodian # @host = line.split(/\s+/)[0] - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - # # Save the port # @@ -213,7 +197,7 @@ module Custodian end rescue Timeout::Error => e @error = "Timed-out performing DNS lookups: #{e}" - return nil + return Custodian::TestResult::TEST_FAILED end @@ -222,7 +206,7 @@ module Custodian # if ips.empty? @error = "#{@host} failed to resolve to either IPv4 or IPv6" - return false + return Custodian::TestResult::TEST_FAILED end @@ -234,7 +218,7 @@ module Custodian ips.each do |ip| if !run_test_internal_real(ip, port, banner, do_read) - return false + return Custodian::TestResult::TEST_FAILED # # @error will be already set. # @@ -246,7 +230,7 @@ module Custodian # All was OK # @error = nil - true + Custodian::TestResult::TEST_PASSED end diff --git a/lib/custodian/protocoltest/telnet.rb b/lib/custodian/protocoltest/telnet.rb index 229b02d..032117d 100644 --- a/lib/custodian/protocoltest/telnet.rb +++ b/lib/custodian/protocoltest/telnet.rb @@ -34,15 +34,6 @@ module Custodian # @host = line.split(/\s+/)[0] - # - # Is this test inverted? - # - if line =~ /must\s+not\s+run\s+/ - @inverted = true - else - @inverted = false - end - # # Save the port # -- cgit v1.2.1