class Aws::SSM::Console::Printer

Attributes

command[R]
command_id[R]
instance_ids[R]

Public Class Methods

new(response) click to toggle source
# File lib/aws/ssm/console/printer.rb, line 7
def initialize(response)
  @command = response.command.parameters['commands'][0]
  @command_id = response.command.command_id
  @instance_ids = response.command.instance_ids
end

Public Instance Methods

print() click to toggle source

Private Instance Methods

outputs() { |instance_id, status, output.split("\n").map { |x| "\t#{x}" }.join("\n")| ... } click to toggle source
# File lib/aws/ssm/console/printer.rb, line 35
def outputs
  instance_ids.each do |instance_id|
    response = Aws::SSM::Console.client.list_command_invocations(command_id: command_id, instance_id: instance_id, details: true)
    response.command_invocations.each do |invocation|
      invocation.command_plugins.map do |command_plugin|
        yield(instance_id, command_plugin.status, command_plugin.output.to_s.split("\n").map { |x| "\t#{x}" }.join("\n"))
      end
    end
  end
end
wait(time: 1) { || ... } click to toggle source
# File lib/aws/ssm/console/printer.rb, line 25
def wait(time: 1)
  loop do
    response = Aws::SSM::Console.client.list_command_invocations(command_id: command_id)
    break unless response.command_invocations.any? { |x| %w(Pending InProgress).include?(x.status) }
    sleep(time)
  end

  yield if block_given?
end