Sha256: f762c7edb179764ab8c3ccd333d0890d4d7323c2b7416a146851a39d935ceda6

Contents?: true

Size: 1.27 KB

Versions: 4

Compression:

Stored size: 1.27 KB

Contents

require "aws-logs"

class Jets::CLI
  class Logs < Base
    include Jets::AwsServices::AwsHelpers

    def run
      options = @options.dup # so it can be modified
      options[:log_group_name] = log_group_name
      options[:since] ||= "10m" # by default, start search 10m in the past
      options[:wait_exists_retries] = 60 # 300 seconds = 300 / 5 = 60 retries
      options[:wait_exists_seconds] = 5

      verb = options[:follow] ? "Tailing" : "Showing"
      warn "#{verb} logs for #{options[:log_group_name]}"

      tail = AwsLogs::Tail.new(options)
      tail.run
    end

    def log_group_name
      log_group_name = @options[:log_group_name] # can be nil
      if log_group_name.nil?
        begin
          log_group_name = Jets::CLI::Lambda::Lookup.function("controller") # function_name
        rescue Jets::CLI::Call::Error => e
          puts "ERROR: #{e.message}"
          abort "Unable to determine log group name by looking it up. Can you double check it?"
        end
      end
      unless log_group_name.include?(Jets.project.namespace)
        log_group_name = "#{Jets.project.namespace}-#{log_group_name}"
      end
      unless log_group_name.include?("aws/lambda")
        log_group_name = "/aws/lambda/#{log_group_name}"
      end
      log_group_name
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
jets-6.0.5 lib/jets/cli/logs.rb
jets-6.0.4 lib/jets/cli/logs.rb
jets-6.0.3 lib/jets/cli/logs.rb
jets-6.0.2 lib/jets/cli/logs.rb