class Awry::Vpc

Constants

COLORS

Public Instance Methods

client() click to toggle source
# File lib/awry/vpc.rb, line 16
def client
  @_client ||= Aws::EC2::Client.new
end
delete(vpc_id) click to toggle source
# File lib/awry/vpc.rb, line 66
def delete(vpc_id)
  if yes?("Really delete vpc #{vpc_id}?", :yellow)
    p client.delete_vpc(vpc_id: vpc_id)
  end
rescue Aws::EC2::Errors::DependencyViolation => e
  error(e.message)
rescue Aws::EC2::Errors::InvalidVpcIDNotFound => e
  error(e.message)
end
ls(prefix = nil) click to toggle source
# File lib/awry/vpc.rb, line 22
def ls(prefix = nil)
  client.describe_vpcs.map(&:vpcs).flatten.map do |v|
    [ tag_name(v, '-'), v.vpc_id, color(v.state), v.cidr_block ]
  end.tap do |list|
    list.select! { |l| l.first.start_with?(prefix) } if prefix
  end.tap do |list|
    print_table list.sort
  end
end
peers() click to toggle source
# File lib/awry/vpc.rb, line 44
def peers
  client.describe_vpc_peering_connections.map(&:vpc_peering_connections).flatten.map do |p|
    [
      tag_name(p, '-'), p.vpc_peering_connection_id, color(p.status.code),
      p.requester_vpc_info.vpc_id, p.accepter_vpc_info.vpc_id,
      p.requester_vpc_info.cidr_block, p.accepter_vpc_info.cidr_block,
    ]
  end.tap do |list|
    print_table list.sort
  end
end
sg() click to toggle source
# File lib/awry/vpc.rb, line 57
def sg
  client.describe_security_groups.map(&:security_groups).flatten.map do |s|
    [ s.group_name, s.group_id, s.vpc_id, '→'+s.ip_permissions.count.to_s, s.ip_permissions_egress.count.to_s+'→' ]
  end.tap do |list|
    print_table list.sort
  end
end
subnets(prefix = nil) click to toggle source
# File lib/awry/vpc.rb, line 33
def subnets(prefix = nil)
  client.describe_subnets.map(&:subnets).flatten.map do |s|
    [ tag_name(s, '') , s.subnet_id, color(s.state), s.vpc_id, s.cidr_block, s.availability_zone, s.availability_zone_id ]
  end.tap do |list|
    list.select! { |l| l.first.start_with?(prefix) } if prefix
  end.tap do |list|
    print_table list.sort
  end
end