Sha256: 5921d08654e5c41e5f06a71f7e1b75500414d26061a43669ea251f535bb70516
Contents?: true
Size: 1.74 KB
Versions: 12
Compression:
Stored size: 1.74 KB
Contents
module Ufo class Task include Default include AwsService def initialize(task_definition, options) @task_definition = task_definition @options = options @cluster = @options[:cluster] || default_cluster end def run puts "Running task_definition: #{@task_definition}".colorize(:green) unless @options[:mute] return if @options[:noop] task_options = { cluster: @cluster, task_definition: @task_definition } if @options[:command] task_options.merge!(overrides: overrides) puts "Running task with container overrides." puts "Command: #{@options[:command].join(' ')}" end resp = ecs.run_task(task_options) puts "Task ARN: #{resp.tasks[0].task_arn}" unless @options[:mute] end private # only using the overrides to override the container command def overrides command = @options[:command] # Thor parser ensure this is always an array container_definition = get_original_container_definition { container_overrides: [ { name: container_definition[:name], command: command, environment: container_definition[:environment], }, ] } end def get_original_container_definition resp = ecs.list_task_definitions( family_prefix: @task_definition, sort: "DESC" ) # "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/wordpress:6", last_definition_arn = resp.task_definition_arns.first task_name = last_definition_arn.split("/").last resp = ecs.describe_task_definition(task_definition: task_name) container_definition = resp.task_definition.container_definitions[0].to_h end end end
Version data entries
12 entries across 12 versions & 1 rubygems