class Architect

Create a plan

Author: Mark Heily <mark.heily@bronto.com>

Attributes

config[RW]

Public Class Methods

new(opts = default_options) click to toggle source
# File lib/architect.rb, line 19
def initialize(opts = default_options)
  @config = Architect::Config.new(opts[:conffile])
  @plugins = nil   # PluginManager, initialized on-demand
end

Public Instance Methods

build(spec) click to toggle source

Build an instance based on a specification

# File lib/architect.rb, line 25
def build(spec)
 builder(spec).build(spec)
end
builder(spec) click to toggle source

Return the appriate Builder object for an instance

# File lib/architect.rb, line 30
def builder(spec)
  case spec[:instance_type]
  when 'virtual'
    require 'architect/builder/virtual'  # Slow, so load it on demand
    @vm_builder ||= VirtualMachineBuilder.new
  when 'physical'
    require 'architect/builder/physical'
    @physical_builder ||= PhysicalMachineBuilder.new
  else
    pp spec
    raise 'Unsupported instance type'
  end
end
default_options() click to toggle source
# File lib/architect.rb, line 44
def default_options
 return({
      conffile: nil,
  })
end
plugins() click to toggle source
# File lib/architect.rb, line 15
def plugins
  @plugins ||= Architect::PluginManager.new(@config.to_hash[:plugins])
end