class Awful::Firehose

Constants

COLORS

Public Instance Methods

color(string) click to toggle source
# File lib/awful/firehose.rb, line 21
def color(string)
  set_color(string, COLORS.fetch(string.to_sym, :yellow))
end
dump(name) click to toggle source
# File lib/awful/firehose.rb, line 60
def dump(name)
  firehose.describe_delivery_stream(delivery_stream_name: name).delivery_stream_description.output do |stream|
    puts YAML.dump(stringify_keys(stream.to_hash))
  end
end
firehose() click to toggle source
# File lib/awful/firehose.rb, line 17
def firehose
  @_firehose ||= Aws::Firehose::Client.new
end
ls() click to toggle source
# File lib/awful/firehose.rb, line 42
def ls
  paginate_delivery_streams(:delivery_stream_names) do |start|
    firehose.list_delivery_streams(exclusive_start_delivery_stream_name: start)
  end.output do |streams|
    if options[:long]
      print_table streams.map { |name|

        s = firehose.describe_delivery_stream(delivery_stream_name: name).delivery_stream_description
        op = s.has_more_destinations ? '>' : ''
        [s.delivery_stream_name, op + s.destinations.count.to_s, color(s.delivery_stream_status), s.delivery_stream_type, 'v' + s.version_id.to_s, s.create_timestamp]
      }
    else
      puts streams
    end
  end
end
paginate_delivery_streams(thing) { |token| ... } click to toggle source

special-case paginator for delivery streams

# File lib/awful/firehose.rb, line 26
def paginate_delivery_streams(thing)
  token = nil
  things = []
  loop do
    resp = yield(token)
    items = resp.send(thing)
    things += items
    token = items.last
    break unless resp.has_more_delivery_streams
  end
  things
end