Sha256: 0ba1f62ea04ca6875fc834fbf53a874be6f87b523ca2d1b8800a5280355ed3f8

Contents?: true

Size: 1.22 KB

Versions: 36

Compression:

Stored size: 1.22 KB

Contents

module Ufo::TaskDefinition::Helpers
  module Vpc
    extend Memoist
    include Ufo::AwsServices

    def default_vpc
      resp = ec2.describe_vpcs(filters: [name: "isDefault", values: ["true"]])
      vpc = resp.vpcs.first
      if vpc
        vpc.vpc_id
      else
        logger.error "No default vpc found".color(:red)
        logger.error <<~EOL
          Please configure the `config.vpc` settings.

          Docs: https://ufoships.com/config/vpc/

        EOL
        exit 1
      end
    end
    memoize :default_vpc

    def subnets_for(vpc_id)
      resp = ec2.describe_subnets(filters: [name: "vpc-id", values: [vpc_id]])
      subnets = resp.subnets
      subnets.map(&:subnet_id)
    end

    def default_subnets
      if default_vpc.nil?
        logger.error "ERROR: no default subnets because no default vpc found".color(:red)
        exit 1
      end
      resp = ec2.describe_subnets(filters: [name: "vpc-id", values: [default_vpc]])
      subnets = resp.subnets
      subnets.map(&:subnet_id)
    end
    memoize :default_subnets

    def key_pairs(regexp=nil)
      resp = ec2.describe_key_pairs
      key_names = resp.key_pairs.map(&:key_name)
      key_names.select! { |k| k =~ regexp } if regexp
      key_names
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
ufo-6.3.13 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.3.12 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.3.11 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.3.10 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.3.9 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.3.8 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.3.7 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.3.6 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.3.5 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.3.4 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.3.3 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.3.2 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.3.1 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.3.0 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.2.5 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.2.4 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.2.3 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.2.2 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.2.1 lib/ufo/task_definition/helpers/vpc.rb
ufo-6.2.0 lib/ufo/task_definition/helpers/vpc.rb