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