class ECSHelper::TaskDefinitionHelper

Attributes

helper[RW]
new_task_definition_hash[RW]
repositories[RW]
service[RW]
service_task_definition[RW]

Public Class Methods

new(helper, service) click to toggle source
# File lib/ecs_helper/task_definition_helper.rb, line 5
def initialize(helper, service)
  @helper = helper
  @service = service
end

Public Instance Methods

container_definition_to_ecr(cd) click to toggle source
# File lib/ecs_helper/task_definition_helper.rb, line 43
def container_definition_to_ecr(cd)
  repo = repo_for(cd)
  is_ecr = cd.image.include?(ecr_base)
  image = repo && version_image(repo)
  should_update = is_ecr && repo && image
  [repo, is_ecr, image, should_update]
end
container_definitions() click to toggle source
# File lib/ecs_helper/task_definition_helper.rb, line 14
def container_definitions
  service_task_definition.container_definitions
end
new_container_definitions() click to toggle source
# File lib/ecs_helper/task_definition_helper.rb, line 51
def new_container_definitions
  container_definitions.map do |cd|
    repo, is_ecr, image, should_be_updated =  container_definition_to_ecr(cd)
    cd.image = "#{repo.repository_uri}:#{version}" if should_be_updated
    cd.to_hash
  end
end
pretty_container_definitions() click to toggle source
# File lib/ecs_helper/task_definition_helper.rb, line 18
def pretty_container_definitions
  container_definitions.map do |cd|
    repo, is_ecr, image, should_be_updated =  container_definition_to_ecr(cd)
    [
      cd.name,
      cd.image,
      is_ecr ? "ECR image" : "Not a ECR image",
      repo ? "Repo #{repo.repository_name}" : "Repo not found",
      image ? "Image version #{version}" : "Image version #{version} not found",
      should_be_updated ? "Will be updated" : "Not applicable"
    ].join(' | ')
  end.join("\n")
end
register_task_definition(hash) click to toggle source
# File lib/ecs_helper/task_definition_helper.rb, line 32
def register_task_definition(hash)
  helper.client.register_task_definition(hash)
end

Private Instance Methods

ecr_base() click to toggle source
# File lib/ecs_helper/task_definition_helper.rb, line 71
def ecr_base
  repositories.first.repository_uri.split('/').first
end
repo_for(cd) click to toggle source
# File lib/ecs_helper/task_definition_helper.rb, line 61
def repo_for(cd)
  repositories.find do |r|
    cd.image.include?(r.repository_uri)
  end
end
version() click to toggle source
# File lib/ecs_helper/task_definition_helper.rb, line 82
def version
  helper.options[:version] || helper.version
end
version_image(repo) click to toggle source
# File lib/ecs_helper/task_definition_helper.rb, line 75
def version_image(repo)
  helper.client.describe_images({repository_name: repo.repository_name, image_ids: [image_tag: version]})
rescue => e
  puts e
  nil
end