module Miasma::Contrib::TerraformApiCore::ApiCommon

Common API methods

Public Class Methods

included(klass) click to toggle source

Set attributes into model

@param klass [Class]

# File lib/miasma/contrib/terraform.rb, line 16
def self.included(klass)
  klass.class_eval do
    attribute :terraform_driver, String, :required => true,
              :allowed_values => ['tfe', 'boule', 'local'], :default => 'local',
              :coerce => lambda{|v| v.to_s }
    # Attributes required for terraform enterprise driver
    attribute :terraform_tfe_endpoint, String
    attribute :terraform_tfe_token, String
    # Attributes required for Boule driver
    attribute :terraform_boule_endpoint, String
    # Attributes required for local driver
    attribute :terraform_local_directory, String
    attribute :terraform_local_scrub_destroyed, [TrueClass, FalseClass], :default => false
  end
end

Public Instance Methods

custom_setup(creds) click to toggle source
# File lib/miasma/contrib/terraform.rb, line 32
def custom_setup(creds)
  begin
    driver_module = Miasma::Models::Orchestration::Terraform.const_get(
      Bogo::Utility.camel(creds[:terraform_driver].to_s)
    )
    extend driver_module
  rescue NameError
    raise NotImplementedError.new "Requested driver not implemented `#{creds[:terraform_driver]}`"
  end
end
endpoint() click to toggle source
# File lib/miasma/contrib/terraform.rb, line 43
def endpoint
  terraform_boule_endpoint
end