class EcsDeployCli::Runners::Base
Public Class Methods
new(parser)
click to toggle source
# File lib/ecs_deploy_cli/runners/base.rb, line 6 def initialize(parser) @parser = parser end
Public Instance Methods
run!()
click to toggle source
# File lib/ecs_deploy_cli/runners/base.rb, line 10 def run! raise NotImplementedError, 'abstract method' end
update_task(definition)
click to toggle source
# File lib/ecs_deploy_cli/runners/base.rb, line 14 def update_task(definition) _update_task(definition) end
Protected Instance Methods
_create_cloudwatch_logs_if_needed(prefix)
click to toggle source
# File lib/ecs_deploy_cli/runners/base.rb, line 32 def _create_cloudwatch_logs_if_needed(prefix) log_group = cwl_client.describe_log_groups(log_group_name_prefix: prefix, limit: 1).to_h[:log_groups] return if log_group.any? cwl_client.create_log_group(log_group_name: prefix) cwl_client.put_retention_policy( log_group_name: prefix, retention_in_days: 14 ) end
_update_task(definition)
click to toggle source
# File lib/ecs_deploy_cli/runners/base.rb, line 20 def _update_task(definition) definition[:container_definitions].each do |container| next unless container.dig(:log_configuration, :log_driver) == 'awslogs' _create_cloudwatch_logs_if_needed(container.dig(:log_configuration, :options, 'awslogs-group')) end ecs_client.register_task_definition( definition ).to_h[:task_definition] end
cf_client()
click to toggle source
# File lib/ecs_deploy_cli/runners/base.rb, line 90 def cf_client @cl_client ||= begin require 'aws-sdk-cloudformation' Aws::CloudFormation::Client.new( profile: ENV.fetch('AWS_PROFILE', 'default'), region: config[:aws_region] ) end end
config()
click to toggle source
# File lib/ecs_deploy_cli/runners/base.rb, line 110 def config @parser.config end
cwe_client()
click to toggle source
# File lib/ecs_deploy_cli/runners/base.rb, line 60 def cwe_client @cwe_client ||= begin require 'aws-sdk-cloudwatchevents' Aws::CloudWatchEvents::Client.new( profile: ENV.fetch('AWS_PROFILE', 'default'), region: config[:aws_region] ) end end
cwl_client()
click to toggle source
# File lib/ecs_deploy_cli/runners/base.rb, line 80 def cwl_client @cwl_client ||= begin require 'aws-sdk-cloudwatchlogs' Aws::CloudWatchLogs::Client.new( profile: ENV.fetch('AWS_PROFILE', 'default'), region: config[:aws_region] ) end end
ec2_client()
click to toggle source
# File lib/ecs_deploy_cli/runners/base.rb, line 43 def ec2_client @ec2_client ||= begin require 'aws-sdk-ec2' Aws::EC2::Client.new( profile: ENV.fetch('AWS_PROFILE', 'default'), region: config[:aws_region] ) end end
ecs_client()
click to toggle source
# File lib/ecs_deploy_cli/runners/base.rb, line 53 def ecs_client @ecs_client ||= Aws::ECS::Client.new( profile: ENV.fetch('AWS_PROFILE', 'default'), region: config[:aws_region] ) end
iam_client()
click to toggle source
# File lib/ecs_deploy_cli/runners/base.rb, line 100 def iam_client @iam_client ||= begin require 'aws-sdk-iam' Aws::IAM::Client.new( profile: ENV.fetch('AWS_PROFILE', 'default'), region: config[:aws_region] ) end end
ssm_client()
click to toggle source
# File lib/ecs_deploy_cli/runners/base.rb, line 70 def ssm_client @cwl_client ||= begin require 'aws-sdk-ssm' Aws::SSM::Client.new( profile: ENV.fetch('AWS_PROFILE', 'default'), region: config[:aws_region] ) end end