class Terraform::Resource

Defines a terraform resource

Attributes

resource_name[R]

Public Class Methods

new(parent_module, resource_name, resource_type, &block) click to toggle source
Calls superclass method
# File lib/terraform_dsl/resource.rb, line 8
def initialize(parent_module, resource_name, resource_type, &block)
  @resource_name = resource_name
  @resource_type = resource_type
  super(parent_module, &block)

  # Allow provider specific post processing
  sym = "post_processing_#{resource_type.split('_').first}"
  send(sym) if self.respond_to?(sym, include_private: true)
end

Public Instance Methods

provisioner(provisioner_type, &block) click to toggle source

Allow provisioner blocks to be nested within resources

# File lib/terraform_dsl/resource.rb, line 19
def provisioner(provisioner_type, &block)
  provisioner_type = provisioner_type.to_sym

  @fields[:provisioner] = @fields[:provisioner] || []

  provisioner_set = Provisioner.new(@module, &block)
  @fields[:provisioner] << { cleanup_provisioner_type(provisioner_type) => provisioner_set.fields }
end

Private Instance Methods

cleanup_provisioner_type(provisioner_type) click to toggle source
# File lib/terraform_dsl/resource.rb, line 30
def cleanup_provisioner_type(provisioner_type)
  case provisioner_type.to_sym
  when :remote_exec
    'remote-exec'
  when :local_exec
    'local-exec'
  else
    provisioner_type
  end
end