class PeerCommander::CommandRunner

Runs the listed commands with a configurable level of parallelism

Attributes

command_results[R]
commands[R]

Public Class Methods

new(commands) click to toggle source
# File lib/peer_commander/command_runner.rb, line 7
def initialize(commands)
  @commands = commands
  @command_results = []
end

Public Instance Methods

all_commands() click to toggle source
# File lib/peer_commander/command_runner.rb, line 29
def all_commands
  raise Errors::CommandNotExecutedError if command_results.empty?

  @command_results
end
duration() click to toggle source
# File lib/peer_commander/command_runner.rb, line 47
def duration
  raise Errors::CommandNotExecutedError if command_results.empty?

  @duration
end
execute(parallelism: 1) click to toggle source
# File lib/peer_commander/command_runner.rb, line 12
def execute(parallelism: 1)
  start = Time.now
  @command_results = ParallelExecutor.new.execute(commands, parallelism)
  @duration = Time.now - start
  @command_results
end
failed?() click to toggle source
# File lib/peer_commander/command_runner.rb, line 25
def failed?
  !success?
end
failed_commands() click to toggle source
# File lib/peer_commander/command_runner.rb, line 41
def failed_commands
  raise Errors::CommandNotExecutedError if command_results.empty?

  @command_results.select(&:failed?)
end
success?() click to toggle source
# File lib/peer_commander/command_runner.rb, line 19
def success?
  raise Errors::CommandNotExecutedError if command_results.empty?

  @command_results.all?(&:success?)
end
successful_commands() click to toggle source
# File lib/peer_commander/command_runner.rb, line 35
def successful_commands
  raise Errors::CommandNotExecutedError if command_results.empty?

  @command_results.select(&:success?)
end