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