Skip to content

Commit

Permalink
Merge pull request #112 from ripienaar/83.1
Browse files Browse the repository at this point in the history
(#83) restore ping as a low level test requirement
  • Loading branch information
ripienaar authored Jan 5, 2021
2 parents a204ac0 + 991877d commit 897f71c
Showing 1 changed file with 31 additions and 3 deletions.
34 changes: 31 additions & 3 deletions lib/mcollective/application/ping.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,36 @@
module MCollective
class Application::Ping < Application # rubocop:disable Style/ClassAndModuleChildren
description "Ping all nodes"
description "Low level network connectivity test"

external(:command => "choria", :args => ["ping"])
external_help(:command => "choria", :args => ["ping", "--help"])
def main
# If the user did not override the default timeout include the discovery timeout
if options[:timeout] == 5
discovery_timeout = options[:disctimeout] || Config.instance.discovery_timeout || 0
options[:timeout] = options[:timeout] + discovery_timeout
end
client = MCollective::Client.new(options)

start = Time.now.to_f
times = []

client.req("ping", "discovery") do |resp|
times << (Time.now.to_f - start) * 1000

puts "%-40s time=%.2f ms" % [resp[:senderid], times.last]
end

puts("\n\n---- ping statistics ----")

if !times.empty?
sum = times.inject(0) {|acc, i| acc + i}
avg = sum / times.length.to_f

puts "%d replies max: %.2f min: %.2f avg: %.2f" % [times.size, times.max, times.min, avg]
else
puts("No responses received")
end

halt client.stats
end
end
end

0 comments on commit 897f71c

Please sign in to comment.