module Furikake::Resources::Kinesis

Public Class Methods

get_resources() click to toggle source
# File lib/furikake/resources/kinesis.rb, line 21
def get_resources
  kinesis = Aws::Kinesis::Client.new

  all_streams = []
  loop do
    res = kinesis.list_streams
    all_streams.push(*res.stream_names)
    break unless res.has_more_streams
  end

  kinesis_infos = []
  all_streams.each do |stream|
    keys = [:stream_name, :stream_arn, :stream_status]
    res = kinesis.describe_stream({
                                    stream_name: stream
                                  })
    resouces = []
    res.stream_description.to_h.each do |k, v|
      if keys.include?(k)
        resouces << v
      end
      if k == :shards
        resouces << v.size
      end
    end
    kinesis_infos << resouces
  end
  kinesis_infos
end
report() click to toggle source
# File lib/furikake/resources/kinesis.rb, line 4
      def report
        resources = get_resources
        headers = ['Stream Name', 'Stream ARN', 'Stream Status', 'Shards']
        if resources.empty?
          info = 'N/A'
        else
          info = MarkdownTables.make_table(headers, resources, is_rows: true, align: 'l')
        end
        documents = <<"EOS"
### Kinesis

#{info}
EOS
        
        documents
      end

Private Instance Methods

get_resources() click to toggle source
# File lib/furikake/resources/kinesis.rb, line 21
def get_resources
  kinesis = Aws::Kinesis::Client.new

  all_streams = []
  loop do
    res = kinesis.list_streams
    all_streams.push(*res.stream_names)
    break unless res.has_more_streams
  end

  kinesis_infos = []
  all_streams.each do |stream|
    keys = [:stream_name, :stream_arn, :stream_status]
    res = kinesis.describe_stream({
                                    stream_name: stream
                                  })
    resouces = []
    res.stream_description.to_h.each do |k, v|
      if keys.include?(k)
        resouces << v
      end
      if k == :shards
        resouces << v.size
      end
    end
    kinesis_infos << resouces
  end
  kinesis_infos
end
report() click to toggle source
# File lib/furikake/resources/kinesis.rb, line 4
      def report
        resources = get_resources
        headers = ['Stream Name', 'Stream ARN', 'Stream Status', 'Shards']
        if resources.empty?
          info = 'N/A'
        else
          info = MarkdownTables.make_table(headers, resources, is_rows: true, align: 'l')
        end
        documents = <<"EOS"
### Kinesis

#{info}
EOS
        
        documents
      end