class Terraform::Stack
Wrapper to instantiate a stack from a yaml definition
Attributes
description[R]
module[R]
name[R]
remote[R]
stack_dir[R]
stack_id[R]
Public Class Methods
load(config)
click to toggle source
# File lib/terraform_dsl/stack.rb, line 11 def load(config) fail MalformedConfig, "Configuration malformed at #{config}" unless config.is_a?(Hash) fail MalformedConfig, "A name must be specified for the stack #{config}" unless config.key?('name') fail MalformedConfig, 'You must specify a uuid. Get one from rake uuid and add it to the config' unless config.key?('uuid') new(config) end
new(config)
click to toggle source
# File lib/terraform_dsl/stack.rb, line 22 def initialize(config) @name = config['name'] @uuid = config['uuid'] @description = config['description'] || '' @variables = config['variables'] || {} @remote = config['remote'] || {} @stack_id = "terraform_#{@name}_#{@uuid}" @module = StackModules.get(config['root']) @variables['terraform_stack_id'] = @stack_id @stack_dir = File.join(Stacks.dir, @stack_id) @module.build(@variables.map { |k, v| [k.to_sym, v] }.to_h) end
Public Instance Methods
apply()
click to toggle source
# File lib/terraform_dsl/stack.rb, line 35 def apply Command.new(self, :apply).execute end
destroy()
click to toggle source
# File lib/terraform_dsl/stack.rb, line 39 def destroy Command.new(self, :destroy).execute end
get()
click to toggle source
# File lib/terraform_dsl/stack.rb, line 47 def get Command.new(self, :get).execute end
plan()
click to toggle source
# File lib/terraform_dsl/stack.rb, line 43 def plan Command.new(self, :plan).execute end
pull()
click to toggle source
# File lib/terraform_dsl/stack.rb, line 55 def pull Remote.new(self, :pull).execute end
push()
click to toggle source
# File lib/terraform_dsl/stack.rb, line 59 def push Remote.new(self, :pull).execute end
remote_config()
click to toggle source
# File lib/terraform_dsl/stack.rb, line 63 def remote_config Remote.new(self, :config).execute end
show()
click to toggle source
# File lib/terraform_dsl/stack.rb, line 51 def show Command.new(self, :show).execute end
to_s()
click to toggle source
# File lib/terraform_dsl/stack.rb, line 71 def to_s <<-eos Name: #{@name} Description: #{@description} Stack Directory: #{@stack_dir} eos end
variables()
click to toggle source
# File lib/terraform_dsl/stack.rb, line 67 def variables @module.variables end