Sha256: 0d6598d3deffdc1d85d84964db30308d42fc2f60bbb51ab73dbadd627f49928e

Contents?: true

Size: 1014 Bytes

Versions: 8

Compression:

Stored size: 1014 Bytes

Contents

# Provides access to default network settings for a vpc: subnets and security_group
# If no @vpc_id is provided to the initializer then the default vpc is used.
class Ufo::Network
  class Fetch
    include Ufo::AwsService
    extend Memoist

    def initialize(vpc_id)
      @vpc_id = vpc_id
    end

    def vpc_id
      return @vpc_id if @vpc_id

      resp = ec2.describe_vpcs(filters: [
        {name: "isDefault", values: ["true"]}
      ])
      resp.vpcs.first.vpc_id
    end
    memoize :vpc_id

    # all subnets
    def subnet_ids
      resp = ec2.describe_subnets(filters: [
        {name: "vpc-id", values: [vpc_id]}
      ])
      resp.subnets.map(&:subnet_id).sort
    end
    memoize :subnet_ids

    # default security group
    def security_group_id
      resp = ec2.describe_security_groups(filters: [
        {name: "vpc-id", values: [vpc_id]},
        {name: "group-name", values: ["default"]}
      ])
      resp.security_groups.first.group_id
    end
    memoize :security_group_id
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
ufo-4.1.4 lib/ufo/network/fetch.rb
ufo-4.1.2 lib/ufo/network/fetch.rb
ufo-4.1.1 lib/ufo/network/fetch.rb
ufo-4.1.0 lib/ufo/network/fetch.rb
ufo-4.0.3 lib/ufo/network/fetch.rb
ufo-4.0.2 lib/ufo/network/fetch.rb
ufo-4.0.1 lib/ufo/network/fetch.rb
ufo-4.0.0 lib/ufo/network/fetch.rb