Sha256: 530759e88fba829ede7b5111f25db1eb94dd8b8200792870710de7eedefb2dea

Contents?: true

Size: 934 Bytes

Versions: 1

Compression:

Stored size: 934 Bytes

Contents

# Use to automatically create the CloudWatch group
module Ufo
  class LogGroup
    include AwsServices

    def initialize(task_definition, options)
      @task_definition, @options = task_definition, options
    end

    def create
      puts "Ensuring log group for #{@task_definition} exists"
      return if @options[:noop]
      task_def = JSON.load(IO.read(task_def_path))
      task_def["containerDefinitions"].each do |container_def|
        begin
          log_group_name = container_def["logConfiguration"]["options"]["awslogs-group"]
        rescue NoMethodError
          # silence when the logConfiguration is not specified
        end

        create_log_group(log_group_name) if log_group_name
      end
    end

    def create_log_group(log_group_name)
      cloudwatchlogs.create_log_group(log_group_name: log_group_name)
    end

    def task_def_path
      "./ufo/output/#{@task_definition}.json"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ufo-1.7.0 lib/ufo/log_group.rb