Class: Wrapbox::Runner::Ecs::Cli

Inherits:
Thor
  • Object
show all
Defined in:
lib/wrapbox/runner/ecs.rb

Instance Method Summary collapse

Instance Method Details

#run_cmd(*args) ⇒ Object



504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
# File 'lib/wrapbox/runner/ecs.rb', line 504

def run_cmd(*args)
  repo = Wrapbox::ConfigRepository.new.tap { |r| r.load_yaml(options[:config]) }
  config = repo.get(options[:config_name])
  config.runner = :ecs
  runner = config.build_runner
  environments = options[:environments].to_s.split(/,\s*/).map { |kv| kv.split("=") }.map do |k, v|
    {name: k, value: v}
  end
  run_options = {
    cluster: options[:cluster],
    task_role_arn: options[:task_role_arn],
    timeout: options[:timeout],
    launch_timeout: options[:launch_timeout],
    launch_retry: options[:launch_retry],
    execution_retry: options[:execution_retry],
    max_retry_interval: options[:max_retry_interval],
    ignore_signal: options[:ignore_signal],
  }.reject { |_, v| v.nil? }
  if options[:cpu] || options[:memory]
    container_definition_overrides = {cpu: options[:cpu], memory: options[:memory]}.reject { |_, v| v.nil? }
  else
    container_definition_overrides = {}
  end
  unless runner.run_cmd(args, environments: environments, container_definition_overrides: container_definition_overrides, **run_options)
    exit 1
  end
end