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