Class: ConfigBuilder::Model::Provider::Base Abstract

Inherits:
Base
  • Object
show all
Defined in:
lib/config_builder/model/provider/base.rb

Overview

This class is abstract.

Abstract base class for Vagrant providers

Instance Method Summary collapse

Methods inherited from Base

#attr, #attrs=, #call, #configure!, def_model_attribute, def_model_delegator, def_model_id, def_model_option, #eval_models, #instance_options, model_attributes, model_delegators, #model_delegators, model_options, new_from_hash, #with_attr

Instance Method Details

#eval_overrides(configs) ⇒ Object

Since:

  • 0.16.0



24
25
26
27
28
29
30
# File 'lib/config_builder/model/provider/base.rb', line 24

def eval_overrides(configs)
  with_attr(:overrides) do |hash|
    _, overrides = configs
    r = ConfigBuilder::Model::Root.new_from_hash(hash)
    r.call(overrides)
  end
end

#instance_idObject

Set this to the name of the 'provider': 'vsphere', 'openstack', 'vmware', etc.

Raises:

  • (NotImplementedError)

Since:

  • 0.16.0



34
35
36
# File 'lib/config_builder/model/provider/base.rb', line 34

def instance_id
  raise NotImplementedError
end

#to_procObject

Since:

  • 0.16.0



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/config_builder/model/provider/base.rb', line 11

def to_proc
  Proc.new do |vm_config|
    vm_config.provider instance_id do |config, overrides|
      configure!(config)

      # NOTE: All models inheriting from this class need to provide
      # delegators which can consume a tuple of provider and override
      # configuration.
      eval_models([config, overrides])
    end
  end
end