Sha256: 59c71295ac807b7c2c3ebdf6132e1609eb6eb6c42258f5fd3b82f60298770bfb

Contents?: true

Size: 1.16 KB

Versions: 5

Compression:

Stored size: 1.16 KB

Contents

module Inventory::Rds::Shared
  # pretty name of vpc
  def vpc_name(db)
    group_ids = db.vpc_security_groups.map(&:vpc_security_group_id)
    resp = ec2.describe_security_groups(group_ids: group_ids)
    groups = resp.security_groups
    vpc_ids = groups.map(&:vpc_id)
    vpc_ids.map do |vpc_id|
      pretty_vpc_name = lookup_vpc_name(vpc_id)
      "#{vpc_id} (#{pretty_vpc_name})"
    end
  end

  def lookup_vpc_name(vpc_id)
    inventory_vpc = Inventory::Vpc.new(@options)
    inventory_vpc.vpc_name(vpc_id)
  end

  def vpcs
    @vpcs ||= ec2.describe_vpcs.vpcs
  end

  def pretty_vpc_security_group(db)
    groups = vpc_security_groups(db)
    groups.map { |g| "#{g.group_id} (#{g.group_name})" }
  end

  # pretty name of the vpc security groups
  def vpc_security_groups(db)
    group_ids = db.vpc_security_groups.map(&:vpc_security_group_id)
    group_ids.map do |db_security_group_id|
      security_groups.find {|sg| sg.group_id == db_security_group_id }
    end
  end

  def db_instances
    @db_instances ||= rds.describe_db_instances.db_instances
  end

  def security_group_names(instance)
    instance.security_groups.map {|sg| sg.group_name}.join(', ')
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
aws-inventory-0.3.2 lib/inventory/rds/shared.rb
aws-inventory-0.3.1 lib/inventory/rds/shared.rb
aws-inventory-0.3.0 lib/inventory/rds/shared.rb
aws-inventory-0.2.1 lib/inventory/rds/shared.rb
aws-inventory-0.2.0 lib/inventory/rds/shared.rb