class VPC::Vpc

Attributes

config[R]
gateway[R]
internet_gateway[RW]
private_route_tables[RW]
private_subnets[RW]
public_route_tables[RW]
public_subnets[RW]
route_tables[RW]
subnets[RW]
vpc_id[R]
vpn[R]

Public Class Methods

new() click to toggle source
# File lib/etude_for_aws/vpc/vpc.rb, line 18
def initialize
  @config = VPC::Configuration.new
  @gateway = VPC::VpcApiGateway.new

  @public_subnets = []
  @private_subnets = []
  @public_route_tables = []
  @private_route_tables = []

  @gateway.select_vpcs_by_name(@config.vpc_name).each do |vpc|
    @vpc_id = vpc.vpc_id
  end

  @subnets = []
  @config.subnet_names.each do |name|
    @gateway.select_subnets_by_name(name).each do |v|
      subnet = VPC::Subnet.new
      subnet.subnet_id = v.subnet_id
      @subnets << subnet
    end
  end

  name = @config.internet_gateway['IG_TAGS']['NAME']['VALUE']
  @gateway.select_internet_gateways_by_name(name).each do |v|
    @internet_gateway = VPC::InternetGateway.new
    @internet_gateway.internet_gateway_id = v.internet_gateway_id
  end

  @route_tables = []
  @config.route_table_names.each do |name|
    @gateway.select_route_tables_by_name(name).each do |v|
      route_table = VPC::RouteTable.new
      route_table.setup(v.route_table_id,self)
      @route_tables << route_table
    end
  end
end

Public Instance Methods

create_internet_gateway() click to toggle source
# File lib/etude_for_aws/vpc/vpc.rb, line 82
def create_internet_gateway
  internet_gateways = @gateway.select_internet_gateways_by_name(@config.vpc_name)
  if internet_gateways.empty?
    @internet_gateway = VPC::InternetGateway.new
    @internet_gateway.create(self)
    key = @config.internet_gateway['IG_TAGS']['NAME']['KEY']
    name = @config.internet_gateway['IG_TAGS']['NAME']['VALUE']
    resources = [@internet_gateway.internet_gateway_id]
    vpc_subnet_name_tag = {key: key, value: name}
    tags = [vpc_subnet_name_tag,@config.vpc_group_tag]
    @gateway.create_tags(resources,tags)
  end
end
create_route_table() click to toggle source
# File lib/etude_for_aws/vpc/vpc.rb, line 101
def create_route_table
end
create_subnets() click to toggle source
# File lib/etude_for_aws/vpc/vpc.rb, line 70
def create_subnets
end
create_vpc() click to toggle source
# File lib/etude_for_aws/vpc/vpc.rb, line 56
def create_vpc
  if @gateway.select_vpcs_by_name(@config.vpc_name).empty?
    @vpc_id = @gateway.create_vpc(@config.vpc_name,@config.vpc_cidr_block)
    resources = [@vpc_id]
    tags = [@config.vpc_name_tag,@config.vpc_group_tag]
    @gateway.create_tags(resources,tags)
  end
end
delete_internet_gateway() click to toggle source
# File lib/etude_for_aws/vpc/vpc.rb, line 96
def delete_internet_gateway
  @internet_gateway.delete(self) unless @internet_gateway.nil?
  @internet_gateway = nil
end
delete_route_tables() click to toggle source
# File lib/etude_for_aws/vpc/vpc.rb, line 104
def delete_route_tables
  @route_tables.each do |route_table|
    route_table.delete(self)
  end
  @route_tables = []
  @private_route_tables = []
  @public_route_tables = []
end
delete_subnets() click to toggle source
# File lib/etude_for_aws/vpc/vpc.rb, line 73
def delete_subnets
  @subnets.each do |subnet|
    subnet.delete(self)
  end
  @subnets = []
  @private_subnets = []
  @public_subnets = []
end
delete_vpc() click to toggle source
# File lib/etude_for_aws/vpc/vpc.rb, line 65
def delete_vpc
  @gateway.delete_vpc(@vpc_id) unless @vpc_id.nil?
  @vpc_id = nil
end
get_subnet_infos() click to toggle source
# File lib/etude_for_aws/vpc/vpc.rb, line 117
def get_subnet_infos
  infos = []

  @public_subnets.each do |public|
    info = {}
    info[:subnet_id] = public.subnet_id
    info[:network] = 'Public'
    info[:az] = public.az
    infos << info
  end

  @private_subnets.each do |private|
    info = {}
    info[:subnet_id] = private.subnet_id
    info[:network] = 'Private'
    info[:az] = private.az
    infos << info
  end

  infos
end
get_vpc_id() click to toggle source
# File lib/etude_for_aws/vpc/vpc.rb, line 113
def get_vpc_id
  @vpc_id
end