Module: Genome::Stack::ClassMethods

Defined in:
lib/genome/stack.rb

Instance Method Summary collapse

Instance Method Details

#buildObject



59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/genome/stack.rb', line 59

def build
  template = nil

  resources.each do |resource|
    template = Genome::Builder.template(resource)
  end

  cloudformation_client.create_stack(
    stack_name: @stack_name,
    template_body: template.to_json,
    parameters: [],
    capabilities: @capabilities
  )
end

#capability(capability_name) ⇒ Object



42
43
44
# File 'lib/genome/stack.rb', line 42

def capability(capability_name)
  capabilities << capability_name
end

#cloudformation_clientObject



55
56
57
# File 'lib/genome/stack.rb', line 55

def cloudformation_client
  @cloudformation_client ||= Aws::CloudFormation::Client.new
end

#disable_iam_capabilitiesObject



46
47
48
49
# File 'lib/genome/stack.rb', line 46

def disable_iam_capabilities
  capabilities.delete(:CAPABILITY_IAM)
  capabilities.delete(:CAPABILITY_NAMED_IAM)
end

#resource(resource_klass) ⇒ Object



51
52
53
# File 'lib/genome/stack.rb', line 51

def resource(resource_klass)
  resources << resource_klass
end

#stack_name(stack_name) ⇒ Object



36
37
38
39
40
# File 'lib/genome/stack.rb', line 36

def stack_name(stack_name)
  @stack_name = stack_name

  Stack.stacks[stack_name] = self
end