class Awsom::Application
Public Class Methods
new(vpc_id:, region:)
click to toggle source
# File lib/awsom/application.rb, line 9 def initialize(vpc_id:, region:) @vpc_id = vpc_id @region = region end
Public Instance Methods
run(files)
click to toggle source
# File lib/awsom/application.rb, line 14 def run(files) files.each do |f| apply f end end
Private Instance Methods
apply(file)
click to toggle source
# File lib/awsom/application.rb, line 46 def apply(file) instance_eval(File.read(file), file) end
instance(name, &block)
click to toggle source
# File lib/awsom/application.rb, line 38 def instance(name, &block) instance = Instance.new(name, vpc_id: @vpc_id) dsl = InstanceDSL.new(name, vpc_id: @vpc_id, subnet_id: @subnet_id) dsl.read(&block) setup_proc = dsl.setup_proc instance.created(setup_proc) { dsl.run_params } end
security_group(name, &block)
click to toggle source
# File lib/awsom/application.rb, line 22 def security_group(name, &block) sg = SecurityGroup.new(name, vpc_id: @vpc_id) sg.created(&block) end
subnet(name, az:, cidr:, &block)
click to toggle source
# File lib/awsom/application.rb, line 27 def subnet(name, az:, cidr:, &block) az = "#{@region}#{az}" subnet = Subnet.new(name, cidr: cidr, vpc_id: @vpc_id, az: az) id = subnet.created puts "subnet #{name} (#{cidr}) #{id}" @subnet_id = id instance_eval(&block) if block ensure @subnet_id = nil end