Sha256: 85595f2467c992dae06cb8e5b987ffb3074cf29d4151cd39935ba6ce5a4145ca

Contents?: true

Size: 1.21 KB

Versions: 24

Compression:

Stored size: 1.21 KB

Contents

# Use to automatically create the CloudWatch group.
# For some reason creating ECS does do this by default.
module Ufo
  class LogGroup
    include AwsService

    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]

      Ufo.check_task_definition!(@task_definition)
      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)
      resp = cloudwatchlogs.describe_log_groups(log_group_name_prefix: log_group_name)
      exists = resp.log_groups.find { |lg| lg.log_group_name == log_group_name }
      cloudwatchlogs.create_log_group(log_group_name: log_group_name) unless exists
    end

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

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
ufo-3.5.7 lib/ufo/log_group.rb
ufo-3.5.6 lib/ufo/log_group.rb
ufo-3.5.5 lib/ufo/log_group.rb
ufo-3.5.4 lib/ufo/log_group.rb
ufo-3.5.3 lib/ufo/log_group.rb
ufo-3.5.2 lib/ufo/log_group.rb
ufo-3.5.1 lib/ufo/log_group.rb
ufo-3.5.0 lib/ufo/log_group.rb
ufo-3.4.4 lib/ufo/log_group.rb
ufo-3.4.3 lib/ufo/log_group.rb
ufo-3.4.2 lib/ufo/log_group.rb
ufo-3.4.1 lib/ufo/log_group.rb
ufo-3.4.0 lib/ufo/log_group.rb
ufo-3.3.2 lib/ufo/log_group.rb
ufo-3.3.1 lib/ufo/log_group.rb
ufo-3.3.0 lib/ufo/log_group.rb
ufo-3.2.2 lib/ufo/log_group.rb
ufo-3.2.1 lib/ufo/log_group.rb
ufo-3.2.0 lib/ufo/log_group.rb
ufo-3.1.2 lib/ufo/log_group.rb